我正在使用maven-jab2-plugin从XSD架构生成POJO.我生成的类没有任何集合的字段的setter.如何为集合生成setter?
任何人都可以解释默认情况下不启用setter的原因吗?
我正在尝试从使用插件 maven-jaxb2-plugin 生成的文件中删除生成的日期和时间。是否可以?
\n\npom.xml 的一部分:
\n\n<build>\n <plugins>\n <plugin>\n <groupId>org.jvnet.jaxb2.maven2</groupId>\n <artifactId>maven-jaxb2-plugin</artifactId>\n <version>0.8.3</version>\n <executions>\n <execution>\n <id>commun-generate</id>\n <goals>\n <goal>generate</goal>\n </goals>\n <configuration>\n <generatePackage>my.package.dest</generatePackage>\n <generateDirectory>${basedir}/src/main/java/</generateDirectory>\n <schemaDirectory>${basedir}/src/main/resources/schemas/wsrest</schemaDirectory>\n <bindingDirectory>${basedir}/src/main/resources/schemas/wsrest</bindingDirectory>\n <bindingIncludes>\n <include>bindings.xml</include>\n </bindingIncludes>\n <strict>false</strict>\n <extension>true</extension>\n <verbose>true</verbose>\n </configuration>\n </execution>\nRun Code Online (Sandbox Code Playgroud)\n\n生成文件的开头:
\n\n //\n // Ce fichier a \xc3\xa9t\xc3\xa9 g\xc3\xa9n\xc3\xa9r\xc3\xa9 par l\'impl\xc3\xa9mentation de r\xc3\xa9f\xc3\xa9rence JavaTM Architecture for XML Binding (JAXB), v2.2.6 \n // Voir <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n // Toute modification apport\xc3\xa9e \xc3\xa0 ce fichier sera perdue lors de la recompilation du sch\xc3\xa9ma source. \n // G\xc3\xa9n\xc3\xa9r\xc3\xa9 le : …Run Code Online (Sandbox Code Playgroud) 我有2个模式A,B.我在B中重用了一些A元素.
我不使用命名空间.
我正在使用
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.9.0</version>
Run Code Online (Sandbox Code Playgroud)
我已经在模式B中定义了模式A的包含:
<xs:include schemaLocation="classpath:my.schema.A.xsd"/>
Run Code Online (Sandbox Code Playgroud)
和目录为
REWRITE_SYSTEM "classpath:my.schema.A.xsd" "maven:my.schema:schema-a!/A.xsd"
Run Code Online (Sandbox Code Playgroud)
jaxb配置如下:
<configuration>
<generatePackage>my.schema.b</generatePackage>
<schemaIncludes>
<includes>B.xsd</includes>
</schemaIncludes>
<episodes>
<episode>
<groupId>my.schema</groupId>
<artifactId>schema-a</artifactId>
</episode>
</episodes>
<catalog>src/main/catalog/catalog.cat</catalog>
</configuration>
Run Code Online (Sandbox Code Playgroud)
问题在于,每当我指定episode依赖项时,架构都不会生成任何类,即使它包含一些我希望为其生成类的B元素.
[INFO] Parsing input schema(s)...
[INFO] Compiling input schema(s)...
[INFO] Cleaning package directories.
[INFO] Finished execution.
Run Code Online (Sandbox Code Playgroud)
当我删除这一集时,它运作良好,并为模式A生成类 - 我确实想避免.
你有什么建议吗?
一个样本发表在Jaxb情节汇编中
当我从此处找到的 WSDL 文件生成 Java 类时:http : //wsdl-bug.s3.amazonaws.com/magento.xml,它成功生成了类但没有操作。
它为类型生成类,并为请求/响应参数生成类,但不为操作生成任何方法。
这是我的 Maven 插件配置:
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<generatePackage>magento.wsdl</generatePackage>
<schemas>
<schema>
<url>http://wsdl-bug.s3.amazonaws.com/magento.xml</url>
</schema>
</schemas>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud) 我想使用jaxb2插件生成可从安全URL访问的WSDL(具有用户ID和密码的基本身份验证).
我应该在哪里指定凭据来生成架构?没有提供它们,我在模式生成期间得到一个401错误.
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.13.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<generatePackage>hello.wsdl</generatePackage>
<schemas>
<schema>
<url>http://www.webservicex.com/stockquote.asmx?WSDL</url>
</schema>
</schemas>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud) 我正在使用 Spring-WS 开发一个 Web 服务客户端。这不是我的第一个使用 Spring-WS 的 Web 服务项目。但我是这个特定项目的新手。
我们使用 maven-jaxb2-plugin 生成 dao 对象。
我正在使用 Spring-WS WebServiceTemplate,带有标准编组器和解组器集。
在之前的项目中,我可以使用以下方式进行 Web 服务调用:
webserviceTemplate.marshallSendAndReceive(new ObjectFactory().createSomeRequest());
Run Code Online (Sandbox Code Playgroud)
在我当前的项目中,我需要提供一个 SoapActionCallback,与 SoapActionUrl 一起提供。
webserviceTemplate.marshallSendAndReceive(new ObjectFactory().createSomeRequest, new SoapActionCallback("http://some-action-url.com/action"));
Run Code Online (Sandbox Code Playgroud)
如果我不提供此 SoapActionUrl,我不会得到结果,并且在调试时,我会看到一个受抑制的异常:
Couldn't get a SAX parser while constructing a envelope
Run Code Online (Sandbox Code Playgroud)
我想删除那些 SoapActionUrls。使用maven-jaxb2-plugin正确生成的对象,应该自动引用正确的actionurl吗?
我用谷歌搜索过这个,但没有找到太多关于它的信息。我想知道为什么我可以在第一种情况下“保留 SoapActionCallback”,而在第二种情况下,我有义务提供此信息。我不知道服务器端使用的具体技术,因为网络服务是由外部合作伙伴开发的。
有人可以解释一下吗?
我正在尝试从使用基本身份验证的 WSLD 文件生成 java 类。
虽然有很多插件,但我必须使用以下一个: org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
随着wsimport还是wsdl2java我已经找到配置基本身份验证参数的方式。使用maven-jaxb2-plugin我没有运气。
我的配置如下:
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.13.2</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<packageName>com.mycompany</packageName>
<sourceType>wsdl</sourceType>
<specVersion>2.2</specVersion>
<schemas>
<schema>
<url>https://some-url?wsdl</url>
</schema>
</schemas>
<outputDirectory>target/generated-sources/xjb</outputDirectory>
<clearOutputDir>false</clearOutputDir>
<useActiveProxyAsHttpproxy>true</useActiveProxyAsHttpproxy>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,构建失败并显示以下消息:
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://some-url?wsdl
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2275)
... 36 more
Run Code Online (Sandbox Code Playgroud)
关于基本身份验证配置的任何想法?提前致谢!
注意:https://username:pass@some-url?wsdl,由于未经授权的请求,我仍然收到 …
我正在将我的 Java 项目从8版迁移到11版。
由于javax.activation已从 JDK 11 中删除,因此我将其添加到 Maven pom.xml 文件中:
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
依赖项列在“Externat librairies”中,但每次我运行“mvn clean install”来构建我的项目时,我都会收到此错误:
...
Caused by: java.lang.ClassNotFoundException: javax.activation.MimeTypeParseException
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 51 more
Run Code Online (Sandbox Code Playgroud)
你有什么想法吗?谢谢
我需要使用最新版本jaxb:2.2.4-1,但maven或maven-jaxb2-plugin似乎从JDK中获取了一个.
我尝试指定这样的版本:
<configuration>
<specVersion>2.2</specVersion>
...
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是日志显示:
[INFO] [jaxb2:generate {execution: common}]
[INFO] Started execution.
[INFO] JAXB API is loaded from the [jar:file:/opt/jdk1.6.0_24/jre/lib/rt.jar!].
[INFO] Detected JAXB API version [2.1].
Run Code Online (Sandbox Code Playgroud)
我试图将依赖项添加到正确版本的javax.xml.bind:jaxb-api和com.sun.xml.bind:jaxb-impl,但这没有帮助.
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.0</version>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.4-1</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>common</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<specVersion>2.2</specVersion>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用maven-jaxb22-plugin但它也没用.
我有问题maven-jaxb2-plugin.我想要实现的是从x个不同的wsdl生成源到不同的包.
我想避免使用多个方法,<execution>所以当我添加另一个wsdl时,我可以保持pom.xml不变.
我配置了像这样的maven插件:
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<schemaDirectory>src/main/resources/webservice/wsdl</schemaDirectory>
<schemaIncludes>
<include>orig/*.wsdl</include>
</schemaIncludes>
<bindingDirectory>src/main/resources/webservice/xjb</bindingDirectory>
<bindingIncludes>
<include>orig/*.xjb</include>
</bindingIncludes>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
在我的理解中,这种方式我指定了.wsdl位置以及绑定文件位置.
现在在一个示例绑定文件中(所有这些都以相同的方式构造)我得到以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:version="2.1">
<jaxb:bindings schemaLocation="../../wsdl/orig/soap1.wsdl"
node="*/xs:schema">
<jaxb:schemaBindings>
<jaxb:package name="my.package.com.soap1" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
Run Code Online (Sandbox Code Playgroud)
另一项服务是soap2,soap3等,它们都有类似的绑定文件.如果我理解这是正确的,多亏了这个connfig我应该能够在单独的包中为我的肥皂生成域对象.
但是当我运行时,maven clean compile我得到以下输出:
[ERROR] Error while parsing schema(s).Location [ file:/C:/Users/me/workspace/orig-project/src/main/resources/webservice/wsdl/orig/soap1.wsdl{202,39}].
org.xml.sax.SAXParseException; systemId: file:/C:/Users/me/workspace/orig-project/src/main/resources/webservice/wsdl/orig/soap1.wsdl; lineNumber: 202; columnNumber: 39; 'Line' **is already defined**
Run Code Online (Sandbox Code Playgroud)
更重要的是,出于测试目的,我尝试配置插件来单独处理每个wsdl <execution>(我想在最终代码中避免这种情况),我观察到的是在第一个ex之后.处理了soap1.wsdl,正确创建了包,但根本没有创建其他soap.wsdl的包.(只有第一次处理). …