maven 플러그인을 사용하여 나머지 WADL에서 Serializable
을 구현하는 클래스를 생성해야합니다. jaxb-bindings.xml
을 추가하여 WSDL 프로젝트에서이 작업을 수행 할 수 있지만 WADL 프로젝트에서는 작동하지 않습니다.나머지에서 직렬화 가능 클래스 생성 maven을 사용하는 WADL
편집 : 파일
를 생성 할 때 지금은이 오류를 얻고있다목표를 org.apache.cxf을 실행하지 못했습니다 : CXF-wadl2java - 플러그인 : 3.2.0 : wadl2java을 (generate- 소스) 프로젝트 my_project : java.lang.RuntimeException : 스키마를 컴파일하는 중 오류 : "http://localhost:8080/rest_web/rest/application.wadl"이 (가) 이 편집의 일부가 아닙니다. 이것은 "http://localhost:8080/rest_web/rest/application.wadl/xsd2.xsd"의 실수입니까? -> [도움말 1]
내 태그는 클라이언트의 잘못된 위치에 있다고 생각
- 그래서 나는 그것을 해결했습니다.
- 은 내가 WADL를 생성
웹 응용 프로그램의 pom.xml 내 JAXB-bindings.xml 업데이트이 CXF issue
<plugin>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>maven-wadl-plugin</artifactId>
<version>1.19.4</version>
<executions>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
<phase>prepare-package</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.1</version>
</dependency>
</dependencies>
<configuration>
<wadlFile>${project.build.outputDirectory}/application.wadl</wadlFile>
<formatWadlFile>true</formatWadlFile>
<baseUri>http://${server}:8080/${project.name}/rest</baseUri>
<packagesResourceConfig>
<param>webservice.rest</param>
</packagesResourceConfig>
<wadlGenerators>
<wadlGeneratorDescription>
<className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc
</className>
<properties>
<property>
<name>applicationDocsFile</name>
<value>${basedir}/src/main/doc/application-doc.xml</value>
</property>
</properties>
</wadlGeneratorDescription>
<wadlGeneratorDescription>
<className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport</className>
<properties>
<property>
<name>grammarsFile</name>
<value>${basedir}/src/main/doc/application-grammars.xml</value>
</property>
</properties>
</wadlGeneratorDescription>
</wadlGenerators>
</configuration>
</plugin>
클라이언트 pom.xml 파일 :
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-wadl2java-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/target/generated-sources</sourceRoot>
<wadlOptions>
<wadlOption>
<wadl>http://localhost:8080/rest_web/rest/application.wadl</wadl>
<extraargs>
<extraarg>-verbose</extraarg>
<extraarg>-xjc-extension</extraarg>
</extraargs>
<bindingFiles>
<bindingFile>${basedir}/src/main/resources/META-INF/jaxb/jaxb-bindings.xml</bindingFile>
</bindingFiles>
<packagename>org.apache.cxf.systest.jaxrs.codegen.service</packagename>
<schemaPackagenames>
<schemaPackagename>http://superbooks=org.apache.cxf.systest.jaxrs.codegen.schema</schemaPackagename>
</schemaPackagenames>
</wadlOption>
</wadlOptions>
</configuration>
<goals>
<goal>wadl2java</goal>
</goals>
</execution>
</executions>
</plugin>
는 JAXB-bindings.xml
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<globalBindings>
<serializable uid="1" />
</globalBindings>
</bindings>
감사합니다. wadl 편집없이이 작업을 수행하는 방법에 대한 정보를 찾으면 알려주십시오. – user1765988