问题标签 [cxf-codegen-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
22691 浏览

java - 使用 Maven 从 WSDL 生成 Java 时指定包名

我正在使用 maven 脚本来生成与 WCF 服务通信所需的 Java 代码。我已经开始进行通信,并准备将我的 maven 脚本及其生成的代码与项目中的其余 java 代码集成在一起。

但是,我无法让 maven 生成具有我想要的正确包名称的代码。根据我在网上阅读的内容,我应该使用该标签,并且我已经看到了两个可能的地方。我已经包含了我认为需要进入的脚本部分,并且它们都在那里。但是,这些标签不会产生任何影响,并且代码生成就像没有它们一样

也许我使用了错误的标签,或者它在错误的地方?

0 投票
2 回答
6044 浏览

maven - Maven cxf插件错误

pom.xml为什么我在添加 apache cxf 插件时在我的文件中看到此错误?

生命周期配置未涵盖插件执行:org.apache.cxf:cxf-codegen-plugin:2.5.4:wsdl2java(执行:generate-sources,阶段:generate-sources)

0 投票
1 回答
7975 浏览

java - 如何使用 Apache CXF Maven 插件链接到 XSD 文件?

我正在使用 Apache cxf-codegen-pluginMaven 插件尝试从 WSDL 文件生成 Java 类。我收到以下错误:

Part <parameters> in Message <{http://www.foo.com/bar}PushCommandSoapIn> referenced Type <{http://www.foo.com/bar}CommandMessage> can not be found in the schemas

有问题的类型 ( CommandMessage) 在我尝试使用以下 POM 文件引用的 XSD 文件中定义:

关于我为什么会出错的任何建议?我不确定添加 a<dependency>是否正确,但我很难找到描述如何引用 XSD 文件的文档。

以下是 WSDL 文件中引用缺失类型的片段:

这是 XSD 文件的标题和片段:

0 投票
3 回答
3270 浏览

maven - 在 Maven 构建期间关闭或配置 java.util.Logging

我想清理/统一 Maven 构建的日志输出。不幸的是,maven 插件的依赖项使用 java.util.Logging ( JUL )。简单地添加org.slf4j:jul-to-slf4j作为附加依赖项来重定向日志输出并没有帮助。当然,排除也不起作用,因为它是 JUL,因此不是依赖项。这是我的配置,包含特定插件及其依赖项:

配置

更新

我已经通过将包含以下内容的 logging.properties 文件添加到项目的根文件夹来设法关闭/配置 JUL 本身:

此外,我必须使用以下参数执行 Maven(或将其设置为MAVEN_OPTS):

剩下的问题

有没有什么方法可以在没有额外文件和/或 JVM 参数的情况下获得相同的结果(仅限 pom.xml)?

0 投票
0 回答
1943 浏览

java - 如何在不连接服务器的情况下使用 maven cxc code gen 从 wsdl 和 xsd 生成类

我想使用 Apache CXG Maven 插件 (WSLD2Java) 生成 java 类来生成 Web 服务客户端。

我有一个有效的配置,但是当我离线或服务器不可用时,生成源失败。

错误是它未能创建 wsdl 定义:从“wsdl 位置”...操作超时。

据我所知,该工具无法访问该服务,因此无法获取 XSD,进而失败。

我有 WSDL 和 XSD,如何将 Maven 插件配置为使用文件的本地副本,而不是从服务器请求额外数据?

编辑: 我通过直接编辑 WSDL 让它“工作”了。我将 XSD 导入标记修改为 > 引用与 WSDL 位于同一文件夹中的 XSD。

编辑 WSDL 解决方案似乎很老套,我更喜欢我可以配置的东西。有什么想法吗?

POM 文件的设置如下减去 artefact id:

0 投票
2 回答
1970 浏览

java - cxf-codegen-plugin 生成禁止包名:java.util.xsd

在 Eclipse 中使用 wsdl2java 和 cxf-codegen-plugin 我为 WSDL 文件生成了客户端代码。但由于 SecurityException,我无法运行客户端:禁止的包名称:java.util.xsd。

有什么办法可以解决这个问题?

异常是这样的。

线程“主”java.lang.SecurityException 中的异常:禁止的包名称:java.lang.ClassLoader.preDefineClass(ClassLoader.java:649) 处的 java.util.xsd java.lang.ClassLoader.defineClass(ClassLoader.java:785) ) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java. net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass( URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:423) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java。lang.ClassLoader.loadClass(ClassLoader.java:356) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class.java:266) 在 sun.reflect.generics.factory.CoreReflectionFactory。 makeNamedType(CoreReflectionFactory.java:114) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect .annotation.AnnotationParser.parseSig(AnnotationParser.java:390) 在 sun.reflect.annotation.AnnotationParser.parseClassValue(AnnotationParser.java:371) 在 sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:673) 在 sun。反射.annotation.AnnotationParser.parseArray(AnnotationParser.java:480) 在 sun.reflect.annotation.AnnotationParser。parseMemberValue(AnnotationParser.java:306) 在 sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:241) 在 sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:88) 在 sun.reflect.annotation.AnnotationParser .parseAnnotations(AnnotationParser.java:70) 在 java.lang.Class.initAnnotationsIfNecessary(Class.java:3098) 在 java.lang.Class.getAnnotation(Class.java:3057) 在 com.sun.xml.internal.ws。 model.RuntimeModeler$1.run(RuntimeModeler.java:156) at com.sun.xml.internal.ws.model.RuntimeModeler$1.run(RuntimeModeler.java:154) at java.security.AccessController.doPrivileged(Native Method) at com.sun.xml.internal.ws.model.RuntimeModeler.getPrivClassAnnotation(RuntimeModeler.java:154) 在 com.sun.xml.internal.ws.model.RuntimeModeler。buildRuntimeModel(RuntimeModeler.java:190) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceDelegate.java:672) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate. java:660) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312)在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294) 在 javax.xml.ws.Service.getPort(Service.java:119) 在 org.wso2.carbon.statistics.services .StatisticsAdmin.getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin.java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41) 在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)190) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:660) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceDelegate.java:672) 在 com .sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) 在 com.sun.xml .internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294) at javax.xml.ws.Service.getPort(Service.java:119) at org.wso2.carbon.statistics.services.StatisticsAdmin.getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin .java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41) 在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)190) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:660) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceDelegate.java:672) 在 com .sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) 在 com.sun.xml .internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294) at javax.xml.ws.Service.getPort(Service.java:119) at org.wso2.carbon.statistics.services.StatisticsAdmin.getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin .java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41) 在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)createSEIPortInfo(WSServiceDelegate.java:672) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:660) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate. java:329) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294)在 javax.xml.ws.Service.getPort(Service.java:119) 在 org.wso2.carbon.statistics.services.StatisticsAdmin.getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin.java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41)在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)createSEIPortInfo(WSServiceDelegate.java:672) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:660) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate. java:329) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294)在 javax.xml.ws.Service.getPort(Service.java:119) 在 org.wso2.carbon.statistics.services.StatisticsAdmin.getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin.java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41)在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)addSEI(WSServiceDelegate.java:660) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate. java:312) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294) 在 javax.xml.ws.Service.getPort(Service.java:119) 在 org.wso2.carbon .statistics.services.StatisticsAdmin.getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin.java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41) 在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)addSEI(WSServiceDelegate.java:660) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate. java:312) 在 com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294) 在 javax.xml.ws.Service.getPort(Service.java:119) 在 org.wso2.carbon .statistics.services.StatisticsAdmin.getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin.java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41) 在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294) 在 javax.xml.ws.Service.getPort(Service.java:119) 在 org.wso2.carbon.statistics.services.StatisticsAdmin。 getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin.java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41) 在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294) 在 javax.xml.ws.Service.getPort(Service.java:119) 在 org.wso2.carbon.statistics.services.StatisticsAdmin。 getStatisticsAdminHttpsSoap11Endpoint(StatisticsAdmin.java:101) 在 test1.StatisticsAdminLibrary.(StatisticsAdminLibrary.java:41) 在 test1.StatisticsAdminLibrary.main(StatisticsAdminLibrary.java:204)

pom.xml

wsdl 文件

0 投票
1 回答
875 浏览

web-services - cxf maven 插件可以为 wsdl 文件目录生成类吗?

cxf-codgen-plugin在 Maven 中使用为 Web 服务生成类。这是我的 pom.xml 的一部分

问题是每次我想添加一个新的 WSDL 时,我都必须pom.xml像这样添加一行:

我要做的是指定一个目录,cxf 将为该目录中的所有 WSDL 文件生成类。

有没有办法做到这一点?谢谢。

0 投票
2 回答
960 浏览

maven - 为 cxf-codegen-plugin 指定代理

如何指定 cxf-codegen-plugin 需要使用的代理。我尝试在 maven settings.xml 中指定代理,但没有被采纳。

0 投票
1 回答
8212 浏览

java - 使用 Maven 和 cxf-codegen-plugin 在 JAR 中打包 WSDL 客户端

我有一个 maven 项目,它将使用许多 web 服务。该应用程序将被打包为 WAR。到目前为止,客户的代码已经生成cxf-codegen-plugin,在generate-sources阶段。默认情况下,生成的源代码被放置在target/generated-sources/cxf中,然后compile,它们被编译并与 中的应用程序类混合target/classes。生成类和应用类都可以共享一级包。

我希望每个客户端都打包在WEB-INF/libWAR 文件中自己的 JAR 中。我发现了-clientjar,但它只生成.jar文件并将它们放入target/generated-sources/cxf,并且 JAR 也最终target/classes与编译的类一起出现,这是没有意义的。

我想compile插件在某个时候正在将生成的源编译成target/classes.,并且可能另一个阶段也将 JAR 移到那里。是否可以让 Maven 避免编译那些生成的源(或者甚至根本cxf-codegen-plugin不生成源,只生成 JAR),并针对 CXF 生成的 JAR 编译应用程序类?

我知道可以通过为每个 web 服务定义一个带有 jar 打包模块的多模块项目来实现这一点,但我想避免这个选项。可能有大量的 Web 服务,不适合为每个服务维护一个独立的模块。由于-clientjar我已经被迫为每个 WSDL 定义一个<wsdlOption>,以便为每个 WSDL 提供 JAR 名称(不可能只让cxf-codegen-pluginscansrc/main/resources/wsdl<wsdlRoot>)。

当然,客户端 JAR 可以在 Maven 外部生成并安装到本地存储库,并在项目中定义为依赖项,但我想知道是否可以在单个 Maven 构建中执行此操作。

对于程序集,我可能会理清如何将生成的 JAR 文件-clientjar放入WEB-INF/lib其中,但在 WAR 中生成的类仍然存在问题。

我对 Maven 构建生命周期及其可能性没有深入的了解,非常欢迎任何建议或指示。

0 投票
1 回答
144 浏览

java - 我把自动生成的类放在哪里?

我使用 cxf maven 插件为 Web 服务生成类。我想知道我为哪个目录指定<sourceRoot>.

将生成的类放入其中是一种好习惯${basedir}\target\classes吗?