Tag: maven jaxb2 plugin

XmlAdapter与较新版本的JAXB无法正常工作

我正在使用以下来源执行Maven项目 package com.coderplus.jaxb; import java.util.HashMap; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; @XmlJavaTypeAdapter(PropertiesMapAdapter.class) public class PropertiesMap extends HashMap { } .. package com.coderplus.jaxb; import java.util.Map.Entry; import javax.xml.bind.annotation.adapters.XmlAdapter; public class PropertiesMapAdapter extends XmlAdapter<Properties, PropertiesMap> { @Override public PropertiesMap unmarshal(Properties properties) throws Exception { PropertiesMap retVal = new PropertiesMap(); if (null != properties) { for (Property param : properties.getProperty()) { retVal.put(param.getName(), param.getValue()); […]

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

我正在尝试从WSLD文件生成java类,该文件使用基本身份validation。 虽然有很多插件,但我必须使用以下org.jvnet.jaxb2.maven2:maven-jaxb2-plugin : org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 使用wsimport或wsdl2java我找到了配置基本身份validation参数的方法。 使用maven-jaxb2-plugin我没有运气。 我的配置如下: org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.13.2 generate com.mycompany wsdl 2.2 https://some-url?wsdl target/generated-sources/xjb false true 正如预期的那样,构建失败并显示以下消息: 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 有关基本身份validation配置的任何想法? […]

xjc,maven-jaxb2-plugin:cryptic java.lang.NoSuchMethodException:javax.xml.bind.annotation.XmlElementRef.required()

我正在尝试使用maven-jaxb2-plugin编译XSD, url为http://www.aptatcip.com/APTA-TCIP-S-01%204.0_files/Schema%20Set.zip 使用此pom.xml和下面的命令行(从父文件夹运行),编译失败并显示相当神秘的错误消息(也在下面给出): pom.xml 4.0.0 onebusaway-nyc org.onebusaway 2.14.0-SNAPSHOT org.onebusaway onebusaway-nyc-tcip-api jar onebusaway-nyc-tcip-api org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.11.0 generate src/main/resources TCIP_4_0_0_Final.xsd 命令行 (在父项目文件夹中) MAVEN_OPTS=”-server -Djava.awt.headless=true -Xmx2G -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC” mvn -X -U clean install -pl onebusaway-nyc-tcip-api 错误信息 [ERROR] Failed to execute goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.11.0:generate (default) on project onebusaway-nyc-tcip-api: Execution default of goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.11.0:generate failed. UndeclaredThrowableException: javax.xml.bind.annotation.XmlElementRef.required() -> [Help 1] maven输出的最后一部分(因为-X长) […]

maven-jaxb2-plugin在同一个项目中重用公共XSD

我有一个项目,它有一个模式A和B,都在同一个命名空间内。 两个导入模式C也使用相同的命名空间。 如何为A和B生成JAXB类以分离包,同时将生成的C中的JAXB类重用到commons包中? 我已经知道我应该使用剧集并使用为模式C生成的剧集作为模式A和B的单独执行的绑定文件。问题是我不知道如何引用这个生成的剧集文件。 这是一个例子: org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.12.3 generate-sources-C generate com.mymodel.commons ${project.build.directory}/generated-sources/xjc-commons src/main/resources/xsd/mymodel/c.xsd generate-sources-A generate com.mymodel.a src/main/resources/xsd/mymodel/a.xsd generate-sources-B generate com.mymodel.b src/main/resources/xsd/mymodel/b.xsd 这会导致在下面创建一个剧集文件: target/generated-sources/xjc-commons/META-INF/sun-jaxb.episode 如何在A和B的执行中引用此剧集/绑定文件? 使用Episodes只提到如何从其他jar依赖项中引用一个剧集文件(或者我只是不能正确理解它,这更有可能)。 我已经看到一个较旧的答案建议将它作为参数-b传递给XJC,但这似乎对我没有任何作用。 我仍然最终生成了三次与C相同的类。

Maven JAXB2 XJC插件:未涵盖M2E插件执行

我正在使用jaxb2 xjc插件从XSD生成java文件。 因此,我曾经按如下方式配置我的pom.xml: org.codehaus.mojo jaxb2-maven-plugin 1.3 generate-sources xjc com.mypackage.model ${basedir}/src/main/resources/XSD org.apache.maven.plugins maven-compiler-plugin 1.6 1.6 我将我的开发环境改为Eclipse Indigo,这不再适用了。 错误说:“生命周期配置未涵盖插件执行”。 我知道我必须以不同的方式定义我的插件的执行,以便它在我的新环境中工作。 我按照本页上的说明M2E插件执行未涵盖,但在执行generate-sources阶段时未生成源文件。 任何人都可以告诉我如何精确重构我的pom,以便我的文件正确生成? 谢谢你的帮助!

如何使用gradle从WSDL和XSD生成类,相当于maven-jaxb2-plugin

我想将我的Maven2构建文件切换为gradle。 使用gradle从WSDL + XSD生成java类似乎没有进一步记录,因此没有gradle插件。 我使用maven的以下配置并搜索gradle的等效项。 org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.7.3 app1-stub-generation generate ${project.build.directory}/wsdl/app1 *.xsd org.app1.ws.generated ${project.build.directory}/generated-sources/app1 true app2-v1-stub-generation generate src/main/resources/wsdl v1/*.xsd org.app2.ws.generated.v1 ${project.build.directory}/generated-sources/v1 true app2-v2-stub-generation generate src/main/resources/wsdl v2/*.xsd org.app2.ws.generated.v2 ${project.build.directory}/generated-sources/v2 true

JAXB将具有相同名称空间的多个文件绑定到同一个包

我有这样的架构层次结构: common |—legacy | |—legacy.xsd xmlns=”http://common/legacy” | |—other.xsd xmlns=”http://common/legacy” | ‘—….xsd xmlns=”http://common/legacy” |—send |—file.xsd xmlns=”http://common/send” ‘—text.xsd xmlns=”http://common/send” ‘—….xsd xmlns=”http://common/send” 一个文件夹中的所有文件具有相同的命名空间 现在我想将命名空间映射到特定的java包(我无法更改命名空间)。 我找到了一个将模式绑定到包的解决方案。 但是我必须为每个xsd文件创建一个条目: ….. 有没有办法直接定义命名空间和包名称之间的绑定? 另一种方法是在maven中定义包: org.jvnet.jaxb2.maven2 maven-jaxb2-plugin com.company/legacy 但是我必须为每个文件夹创建一个执行,这不是我想要的。

如何让JAXB2发出CamelCase绑定?

我正在使用jaxws-maven-plugin的wsimport目标从WSDL生成Java类。 开箱即用,这将从XML模式生成可怕的类和方法; 例如,来自名为MY_OBJECT的XML元素的名为MYOBJECT的类。 我发现我可以使用外部文件自定义JAXB2绑定 ; 这对于少数类和方法是可接受的,但是在这种情况下手动命名所有内容的开销是不合需要的。 一些搜索揭示了对XJC CamelCase Always插件的引用,但这似乎没有维护,大多数链接都是404。 不愿意放弃,我确实找到了一个似乎提供此function的camelcase-always Maven工件,但我不知道如何配置它以便jaxws-maven-plugin使用它。 如何在不指定全部手动的情况下获取CamelCase绑定?

jaxb,xsd导入无法识别

我有一个jaxb插件的大问题。 我有一个项目A,我有src / main / resources / xsd / common.xsd文件。 在这个项目中,我使用cxf-xjc-plugin来生成java类。 我还有我的episod文件在src / main / resources / META-INF下名为sun-jaxb.episode 接下来,我有项目B,它对项目A有maven依赖。在这个项目中我有src / main / resources / catalog.txt PUBLIC “http://www.some_path” “maven:GROUP_ID_OF_PROJECT_A:ARTIFACT_ID_OF_PROJECT_A:jar::!/common.xsd” 在项目BI中有pom文件和jaxb插件 org.jvnet.jaxb2.maven2 maven-jaxb2-plugin true GROUP_ID_OF_PROJECT_A ARTIFACT_ID_OF_PROJECT_A src/main/resources/catalog.txt 接下来,我在项目B中 src/main/resources/other/xsd my main.xsd 我使用common.xsd中的类型定义的文件 我有xmlns:cmns =“http://www.some_path”//它与catalog.txt中的相同 但问题是我得到错误未定义简单或复杂类型,因为它不识别cmns

maven-jaxb2-plugin用于多个模式的VS jaxb2-maven-plugin

我有多个xsd模式,我想在同一文件夹target/generated-sources/xjc下解组到不同的包中。 我尝试了两个插件,两者似乎都可以正常使用这两个配置但是在maven-jaxb2-plugin的情况下,eclipse插件会无限期地生成类(因为forceRegenerate = true)但是如果我没有指定forceRegenerate它就不会当我运行mvn clean package时,根本生成第二组和第三组类我的配置是否有任何问题? JAXB2 – Maven的插件 org.codehaus.mojo jaxb2-maven-plugin 1.6 xjc-scores xjc com.generated.scores src/main/resources/schemas/scores xjc-videos-ramp xjc com.generated.ramp src/main/resources/schemas/ramp false xjc-schedules xjc com.generated.schedules src/main/resources/schemas/schedules false Maven的JAXB2-插件 org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.3 xjc-scores generate-sources generate com.generated.scores src/main/resources/schemas/scores true xjc-ramp generate-sources generate com.generated.ramp src/main/resources/schemas/ramp false xjc-schedules generate-sources generate com.generated.schedules src/main/resources/schemas/schedules false true 和build-helper-maven-plugin配置: org.codehaus.mojo build-helper-maven-plugin 1.8 add-source generate-sources […]