标签: maven-jaxb2-plugin

使用maven-jaxb2-plugin生成java源时,如何为集合启用setter?

我正在使用maven-jab2-plugin从XSD架构生成POJO.我生成的类没有任何集合的字段的setter.如何为集合生成setter?

任何人都可以解释默认情况下不启用setter的原因吗?

java xjc maven-jaxb2-plugin

6
推荐指数
1
解决办法
6375
查看次数

maven-jaxb2-plugin (maven) 生成的日期和时间

我正在尝试从使用插件 maven-jaxb2-plugin 生成的文件中删除生成的日期和时间。是否可以?

\n\n

pom.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>\n
Run 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)

configuration maven maven-jaxb2-plugin

6
推荐指数
2
解决办法
2468
查看次数

使用include的JAXB剧集编译不起作用

我有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情节汇编中

java xml xjc maven-jaxb2-plugin jaxb-episode

6
推荐指数
1
解决办法
2194
查看次数

Maven jaxb2 插件不生成操作

当我从此处找到的 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)

java wsdl magento maven maven-jaxb2-plugin

6
推荐指数
0
解决办法
1513
查看次数

使用HTTP身份验证和maven-jaxb2-plugin为WSDL生成模式

我想使用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)

maven maven-jaxb2-plugin

6
推荐指数
1
解决办法
1149
查看次数

为什么有时需要 SoapActionCallBack?

我正在使用 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”,而在第二种情况下,我有义务提供此信息。我不知道服务器端使用的具体技术,因为网络服务是由外部合作伙伴开发的。

有人可以解释一下吗?

spring web-services spring-ws maven-jaxb2-plugin

6
推荐指数
0
解决办法
7684
查看次数

使用基本身份验证从 wsdl url 生成 java 类

我正在尝试从使用基本身份验证的 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 xjc jaxb2 maven maven-jaxb2-plugin

6
推荐指数
1
解决办法
3573
查看次数

迁移 Jave 11 _ 如何解决:java.lang.ClassNotFoundException: javax.activation.MimeTypeParseException

我正在将我的 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 maven-3 maven-jaxb2-plugin java-11

6
推荐指数
1
解决办法
1465
查看次数

如何在maven-jaxb2-plugin中指定JAXB版本?

我需要使用最新版本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-2 jaxb2 maven maven-jaxb2-plugin

5
推荐指数
1
解决办法
9384
查看次数

maven-jaxb2-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的包.(只有第一次处理). …

java soap wsdl xjc maven-jaxb2-plugin

5
推荐指数
0
解决办法
1922
查看次数