Java 名称为&引用;对于JDOM/XML命名空间不合法:命名空间URI必须是非null和非空字符串

Java 名称为&引用;对于JDOM/XML命名空间不合法:命名空间URI必须是非null和非空字符串,java,jaxb,xsd,xjc,jdom,Java,Jaxb,Xsd,Xjc,Jdom,我将XJC插件与JAXB一起使用,以生成带有注释类的API 我修改了插件,以便它从XSD文件生成请求和响应类,以生成WSDL 在这个级别上,一切都很好=>它生成了相应的类,并为此服务收取类外观费用,但是当我试图通过Web请求WSDL时,它会给我以下错误: org.jdom.IllegalNameException: The name "" is not legal for JDOM/XML namespaces: Namespace URIs must be non-null and non-

我将XJC插件与JAXB一起使用,以生成带有注释类的API

我修改了插件,以便它从XSD文件生成请求和响应类,以生成WSDL

在这个级别上,一切都很好=>它生成了相应的类,并为此服务收取类外观费用,但是当我试图通过Web请求WSDL时,它会给我以下错误:

 org.jdom.IllegalNameException: The name "" is not legal for JDOM/XML namespaces: Namespace URIs must be non-null and non-empty Strings.
        at org.jdom.Namespace.getNamespace(Namespace.java:164)
        at org.codehaus.xfire.util.NamespaceHelper.getUniquePrefix(NamespaceHelper.java:58)
        at org.codehaus.xfire.wsdl.AbstractWSDL.getNamespacePrefix(AbstractWSDL.java:291)
        at org.codehaus.xfire.wsdl11.builder.WSDLBuilder.writeParametersSchema(WSDLBuilder.java:644)
        at org.codehaus.xfire.wsdl11.builder.WSDLBuilder.createDocumentType(WSDLBuilder.java:612)
        at org.codehaus.xfire.wsdl11.builder.WSDLBuilder.createWrappedInputParts(WSDLBuilder.java:580)
        at org.codehaus.xfire.wsdl11.builder.WSDLBuilder.createInputMessage(WSDLBuilder.java:371)
        at org.codehaus.xfire.wsdl11.builder.WSDLBuilder.createAbstractInterface(WSDLBuilder.java:234)
        at org.codehaus.xfire.wsdl11.builder.WSDLBuilder.write(WSDLBuilder.java:161)
        at org.codehaus.xfire.wsdl11.builder.WSDLBuilderAdapter.write(WSDLBuilderAdapter.java:40)
        at org.codehaus.xfire.DefaultXFire.generateWSDL(DefaultXFire.java:104)
        at org.codehaus.xfire.transport.http.XFireServletController.generateWSDL(XFireServletController.java:380)
        at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:125)
        at org.codehaus.xfire.transport.http.XFireServlet.doGet(XFireServlet.java:107)
        at fr.sgf.wit.clyens.core.xfire.servlet.XFireSpringServlet.doGet(XFireSpringServlet.java:45)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:662)
我正在使用插件jdom 1.1版本


有人能帮我吗?

请注意,您可能正在调用
getNamespace(“ns1”),或者“)
(基于。这是xfire中的一个bug,因为在XML中使用诸如:
之类的元素是非法的。这是xfire中的一个bug,而不是JDOM。感谢您的回复。您认为没有解决方案吗?知道我使用xfire core 1.2.6版本来维护JDOM项目,所以,我要说的是,我已经研究了这个问题,并详细介绍了我知道调用JDOM的代码试图做一些非法的事情,而JDOM正在做“正确的事情”。现在,为什么调用代码试图将空字符串URI分配给前缀名称空间,这不是我可以帮助您的。我怀疑它从某个地方获得了一些损坏的数据,但是,根据您提供的信息,这里有这还不够。您需要调试器的帮助,可能还需要xfire人员的帮助。而不是JDOM。