我需要使用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:編譯錯誤 架構來自WADL: 「http://localhost:8080/rest_web/rest/application.wadl」不是這個編譯的部分 。這是 「http://localhost:8080/rest_web/rest/application.wadl/xsd2.xsd」的錯誤嗎? - > [說明1]
- 我想通了,我的標籤是在 客戶端上的錯誤的地方,所以我固定它。
- 我從這個CXF issue
- 更新我的JAXB bindings.xml
Web應用程序的pom.xml產生的WADL添加-xjc擴展的extraarg監守鏈接到Oracle 文件:
<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