我正在尝试为 Web 服务生成我的 WSDL,但出现此错误:
注:AP轮次:2
线程“主”javax.xml.ws.WebServiceException 中的异常:无法创建 JAXBContext
在 com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:153)
在 com.sun.xml.internal.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:83)
在 com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:244)
在 com.sun.tools.internal.ws.wscompile.WsgenTool.buildModel(WsgenTool.java:229)
在 com.sun.tools.internal.ws.wscompile.WsgenTool.run(WsgenTool.java:112)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在 java.lang.reflect.Method.invoke(Method.java:597)
在 com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:105)
在 com.sun.tools.internal.ws.WsGen.main(WsGen.java:41)
引起:java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:1 个 IllegalAnnotationExceptions 计数
java.lang.StackTraceElement 没有无参数默认构造函数。
此问题与以下位置有关:
在 java.lang.StackTraceElement
在公共 java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()
在 java.lang.Throwable
在 java.lang.Exception
在 java.sql.SQLException
在私有 java.sql.SQLException wsdb.jaxws.SQLExceptionBean.nextException
在 wsdb.jaxws.SQLExceptionBean
在 java.security.AccessController.doPrivileged(本机方法)
在 com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:140)
... 10 更多
引起:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:1 个 IllegalAnnotationExceptions 计数
java.lang.StackTraceElement 没有无参数默认构造函数。
此问题与以下位置有关:
在 java.lang.StackTraceElement
在公共 java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()
在 java.lang.Throwable
在 java.lang.Exception
在 java.sql.SQLException
在私有 java.sql.SQLException wsdb.jaxws.SQLExceptionBean.nextException
在 wsdb.jaxws.SQLExceptionBean
在 com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:91)
在 com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:436)
在 com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:277)
在 com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1100)
在 com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:143)
在 com.sun.xml.internal.bind.api.JAXBRIContext.newInstance(JAXBRIContext.java:95)
在 com.sun.xml.internal.ws.developer.JAXBContextFactory$1.createJAXBContext(JAXBContextFactory.java:97)
在 com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:148)
在 com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:140)
... 12 更多
我在互联网上看到了一些关于这个的讨论,从为所有类构建一个构造函数开始,直到创建另一个 xml 规范。事实是对此没有真正的答案,或者我测试的解决方案不起作用。
我在这里阅读了关于这个问题的讨论,但它没有终止,我不知道如何解决。如果有人对此有所了解,我非常感谢将我加入正确的方向以避免这种情况。
我在 JDK 6 和 wsgen 中使用 Debian Squezze、Java 1.6_20、JAX-WS JAX-WS RI 2.1.6 来生成 wsdl。它正确的第一步是生成带有 bean 类的 jaxws 目录。