问题标签 [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.
java - 使用 Maven 从 WSDL 生成 Java 时指定包名
我正在使用 maven 脚本来生成与 WCF 服务通信所需的 Java 代码。我已经开始进行通信,并准备将我的 maven 脚本及其生成的代码与项目中的其余 java 代码集成在一起。
但是,我无法让 maven 生成具有我想要的正确包名称的代码。根据我在网上阅读的内容,我应该使用该标签,并且我已经看到了两个可能的地方。我已经包含了我认为需要进入的脚本部分,并且它们都在那里。但是,这些标签不会产生任何影响,并且代码生成就像没有它们一样
也许我使用了错误的标签,或者它在错误的地方?
maven - Maven cxf插件错误
pom.xml
为什么我在添加 apache cxf 插件时在我的文件中看到此错误?
生命周期配置未涵盖插件执行:org.apache.cxf:cxf-codegen-plugin:2.5.4:wsdl2java(执行:generate-sources,阶段:generate-sources)
java - 如何使用 Apache CXF Maven 插件链接到 XSD 文件?
我正在使用 Apache cxf-codegen-plugin
Maven 插件尝试从 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 文件的标题和片段:
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)?
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:
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
web-services - cxf maven 插件可以为 wsdl 文件目录生成类吗?
我cxf-codgen-plugin
在 Maven 中使用为 Web 服务生成类。这是我的 pom.xml 的一部分
问题是每次我想添加一个新的 WSDL 时,我都必须pom.xml
像这样添加一行:
我要做的是指定一个目录,cxf 将为该目录中的所有 WSDL 文件生成类。
有没有办法做到这一点?谢谢。
maven - 为 cxf-codegen-plugin 指定代理
如何指定 cxf-codegen-plugin 需要使用的代理。我尝试在 maven settings.xml 中指定代理,但没有被采纳。
java - 使用 Maven 和 cxf-codegen-plugin 在 JAR 中打包 WSDL 客户端
我有一个 maven 项目,它将使用许多 web 服务。该应用程序将被打包为 WAR。到目前为止,客户的代码已经生成cxf-codegen-plugin
,在generate-sources
阶段。默认情况下,生成的源代码被放置在target/generated-sources/cxf
中,然后compile
,它们被编译并与 中的应用程序类混合target/classes
。生成类和应用类都可以共享一级包。
我希望每个客户端都打包在WEB-INF/lib
WAR 文件中自己的 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-plugin
scansrc/main/resources/wsdl
或<wsdlRoot>
)。
当然,客户端 JAR 可以在 Maven 外部生成并安装到本地存储库,并在项目中定义为依赖项,但我想知道是否可以在单个 Maven 构建中执行此操作。
对于程序集,我可能会理清如何将生成的 JAR 文件-clientjar
放入WEB-INF/lib
其中,但在 WAR 中生成的类仍然存在问题。
我对 Maven 构建生命周期及其可能性没有深入的了解,非常欢迎任何建议或指示。
java - 我把自动生成的类放在哪里?
我使用 cxf maven 插件为 Web 服务生成类。我想知道我为哪个目录指定<sourceRoot>
.
将生成的类放入其中是一种好习惯${basedir}\target\classes
吗?