Not yet functional REST client stuff

This commit is contained in:
karl 2019-12-02 12:17:12 +01:00
parent 7d5609f422
commit b8fb919bf4
6 changed files with 100 additions and 11 deletions

2
.idea/compiler.xml generated
View File

@ -13,7 +13,7 @@
</annotationProcessing> </annotationProcessing>
<bytecodeTargetLevel> <bytecodeTargetLevel>
<module name="MoviesApp" target="11" /> <module name="MoviesApp" target="11" />
<module name="MoviesClient" target="9" /> <module name="MoviesClient" target="10" />
<module name="MoviesCommon" target="9" /> <module name="MoviesCommon" target="9" />
<module name="MoviesWebApp" target="9" /> <module name="MoviesWebApp" target="9" />
</bytecodeTargetLevel> </bytecodeTargetLevel>

View File

@ -10,11 +10,12 @@
</configuration> </configuration>
</facet> </facet>
</component> </component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_9"> <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_10">
<output url="file://$MODULE_DIR$/target/classes" /> <output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" /> <output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/target/at" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/target/generated" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/target/generated" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" /> <excludeFolder url="file://$MODULE_DIR$/target" />
</content> </content>
@ -22,9 +23,6 @@
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.4" level="project" /> <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.4" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.ws:jaxws-rt:2.3.2" level="project" /> <orderEntry type="library" name="Maven: com.sun.xml.ws:jaxws-rt:2.3.2" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.2" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.2" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.8" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.ws:policy:2.7.6" level="project" /> <orderEntry type="library" name="Maven: com.sun.xml.ws:policy:2.7.6" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.gmbal:gmbal:4.0.0" level="project" /> <orderEntry type="library" name="Maven: org.glassfish.gmbal:gmbal:4.0.0" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.external:management-api:3.2.1" level="project" /> <orderEntry type="library" name="Maven: org.glassfish.external:management-api:3.2.1" level="project" />
@ -59,5 +57,44 @@
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" /> <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" />
<orderEntry type="library" name="Maven: jakarta.xml.soap:jakarta.xml.soap-api:1.4.1" level="project" /> <orderEntry type="library" name="Maven: jakarta.xml.soap:jakarta.xml.soap-api:1.4.1" level="project" />
<orderEntry type="library" name="Maven: jakarta.jws:jakarta.jws-api:1.1.1" level="project" /> <orderEntry type="library" name="Maven: jakarta.jws:jakarta.jws-api:1.1.1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-client:4.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-client-api:4.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-core-spi:4.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec:1.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1.1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-core:4.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.microprofile.config:microprofile-config-api:1.3" level="project" />
<orderEntry type="library" name="Maven: org.osgi:org.osgi.annotation.versioning:1.0.0" level="project" />
<orderEntry type="library" name="Maven: io.smallrye:smallrye-config:1.3.6" level="project" />
<orderEntry type="library" name="Maven: javax.enterprise:cdi-api:2.0.SP1" level="project" />
<orderEntry type="library" name="Maven: javax.el:javax.el-api:3.0.0" level="project" />
<orderEntry type="library" name="Maven: javax.interceptor:javax.interceptor-api:1.2" level="project" />
<orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.7" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:1.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-jaxb-provider:4.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:1.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.1" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.1" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-jackson2-provider:4.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.10" level="project" />
<orderEntry type="library" name="Maven: com.github.fge:json-patch:1.9" level="project" />
<orderEntry type="library" name="Maven: com.github.fge:jackson-coreutils:1.6" level="project" />
<orderEntry type="library" name="Maven: com.github.fge:msg-simple:1.1" level="project" />
<orderEntry type="library" name="Maven: com.github.fge:btf:1.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:25.0-jre" level="project" />
</component> </component>
</module> </module>

View File

@ -24,6 +24,24 @@
<artifactId>jaxws-ri</artifactId> <artifactId>jaxws-ri</artifactId>
<type>pom</type> <type>pom</type>
</dependency> </dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>4.3.1.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>4.3.1.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>4.3.1.Final</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
@ -85,8 +103,8 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
<source>9</source> <source>10</source>
<target>9</target> <target>10</target>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>

View File

@ -0,0 +1,31 @@
package at.technikumwien.movies;
import at.technikumwien.movies.generated.Movie;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import java.util.List;
public class MovieResourceClient {
public static void main(String[] args) {
var target = ClientBuilder.newClient().target("http://localhost:8080/movieservice/resources/movie");
//var response = target.request().post(Entity.json(new Movie()));
//System.out.println(response.getLocation());
List<Movie> allMovies = target
.request(MediaType.APPLICATION_XML)
.get(new GenericType<List<Movie>>() {}); // Solution for List<Movie>.class
allMovies.forEach(System.out::println);
var movie = target.path("/{id}")
.resolveTemplate("id", 1) // Useful for pre-defining templates
.request(MediaType.APPLICATION_JSON)
.get(Movie.class);
System.out.println(movie);
}
}

View File

@ -2,6 +2,7 @@ package at.technikumwien.movies;
import at.technikumwien.movies.generated.Movie; import at.technikumwien.movies.generated.Movie;
import at.technikumwien.movies.generated.MoviesWebService;
import at.technikumwien.movies.generated.MoviesWebService_Service; import at.technikumwien.movies.generated.MoviesWebService_Service;
import javax.xml.ws.Service; import javax.xml.ws.Service;
@ -10,11 +11,11 @@ import java.util.List;
public class MoviesWebServiceClient { public class MoviesWebServiceClient {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
MoviesWebService_Service service = new MoviesWebService_Service(); MoviesWebService_Service service = new MoviesWebService_Service();
at.technikumwien.movies.generated.MoviesWebService port = service.getMoviesWebServicePort(); MoviesWebService port = service.getMoviesWebServicePort();
// TODO: Move to a better place // TODO: Move to a better place
// Import movies // Import moviess
List<Movie> movies = XmlHelper.xmlToMovies("movietest.xml"); List<Movie> movies = XmlHelper.xmlToMovies("movietest.xml");
port.importMovies(movies); port.importMovies(movies);

View File

@ -1,12 +1,14 @@
package at.technikumwien.movies; package at.technikumwien.movies;
import at.technikumwien.movies.generated.Movie;
import javax.xml.bind.*; import javax.xml.bind.*;
import javax.xml.transform.stream.StreamSource; import javax.xml.transform.stream.StreamSource;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
public class XmlHelper { public class XmlHelper {
public static void moviesToXml(List<at.technikumwien.movies.generated.Movie> movies, String filename) throws Exception { public static void moviesToXml(List<Movie> movies, String filename) throws Exception {
MovieList movieList = new MovieList(movies); MovieList movieList = new MovieList(movies);
JAXBContext jaxbContext = JAXBContext.newInstance(MovieList.class); JAXBContext jaxbContext = JAXBContext.newInstance(MovieList.class);
@ -20,7 +22,7 @@ public class XmlHelper {
marshaller.marshal(movieList, new File(filename)); marshaller.marshal(movieList, new File(filename));
} }
public static List<at.technikumwien.movies.generated.Movie> xmlToMovies(String filename) throws JAXBException { public static List<Movie> xmlToMovies(String filename) throws JAXBException {
JAXBContext jaxbContext = JAXBContext.newInstance(MovieList.class); JAXBContext jaxbContext = JAXBContext.newInstance(MovieList.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();