【问题标题】:JBoss AS 7 wsconsume: Failed to compile generated code - @XmlElementRef - requiredJBoss AS 7 wsconsume:无法编译生成的代码 - @XmlElementRef - 必需
【发布时间】:2012-06-09 18:54:00
【问题描述】:

我正在尝试 JBoss AS 7 wsconsume.sh,但在生成的源代码上出现编译错误。 怎么了?

WSDL 文件来自https://isir.justice.cz:8443/isir_ws/services/IsirPub001?wsdl 而且形式上的错误很少。

$ ./wsconsume.sh -p cz.pohlidame.clientJBoss -o fooOut -s fooSrc -t 2.2 -e ~/proj/pohlidame.cz/wsdl-consumer/IsirPub001.wsdl 
Could not find log4j.xml configuration, logging to console.

TODO! Cheek SOAP 1.2 extension
WSConsume (CXF) does not allow to setup the JAX-WS specification target, using the currently configured JAX-WS version (check your JVM version and/or endorsed libs)
Loading FrontEnd jaxws ...
Loading DataBinding jaxb ...
wsdl2java -compile -exsh false -p cz.pohlidame.clientJBoss -verbose -classdir /home/ondra/work/AS7/ozizka-git/build/target/jboss-as-7.2.0.Alpha1-SNAPSHOT/bin/fooOut  -allowElementReferences file:/home/ondra/proj/pohlidame.cz/wsdl-consumer/IsirPub001.wsdl
wsdl2java - Apache CXF 2.4.6

                                                            ^
./cz/pohlidame/clientJBoss/IsirPub001Data.java:63: cannot find symbol
symbol  : method required()
location: @interface javax.xml.bind.annotation.XmlElementRef
@XmlElementRef(name = "spisZnacka", type = JAXBElement.class, required = false)
                                                              ^
3 errors
Failed to invoke WSDLToJava
org.apache.cxf.tools.common.ToolException: Failed to compile generated code
    at org.apache.cxf.tools.common.ClassUtils.compile(ClassUtils.java:115)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:265)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:138)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:286)
    at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
    at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
    at org.jboss.wsf.stack.cxf.tools.CXFConsumerImpl.consume(CXFConsumerImpl.java:250)
    at org.jboss.ws.tools.cmd.WSConsume.importServices(WSConsume.java:279)
    at org.jboss.ws.tools.cmd.WSConsume.mainInternal(WSConsume.java:104)
    at org.jboss.ws.tools.cmd.WSConsume.main(WSConsume.java:92)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.modules.Module.run(Module.java:270)
    at org.jboss.modules.Main.main(Main.java:294)

【问题讨论】:

    标签: web-services cxf consuming


    【解决方案1】:

    required 属性已添加到 JAXB 2.2 中的 @XmlElementRef

    请参阅此处“必需”元素下的“自 2.2”:http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/XmlElementRef.html#required()

    您似乎已经生成了一个 JAXB 2.2 模型并尝试在带有 JAXB 2.1 API 的运行时中使用它。

    注意:Java SE 6 包含 JAXB 2.0/2.1,Java SE 7 包含 JAXB 2.2。

    【讨论】:

    • 有道理,谢谢。之前,我尝试过不使用-t 和使用-t 2.0,但结果相同。我将尝试使用 JDK 7。
    猜你喜欢
    • 2018-03-29
    • 2012-01-30
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2016-07-24
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多