Web services 调用部署到JBoss的web服务的web服务客户端中的实例化异常

Web services 调用部署到JBoss的web服务的web服务客户端中的实例化异常,web-services,jboss,jax-ws,jaxb2,Web Services,Jboss,Jax Ws,Jaxb2,我正在将一个带有@WebService注释的无状态SessionBean部署到JBoss。我使用JBoss生成的WSDL来生成客户端存根。我的问题是调用一个返回对象列表的方法。如果列表为空,则调用成功。但是,如果列表不为空,则会出现以下异常: com.sun.xml.ws.encoding.soap.DeserializationException: Failed to read a response: javax.xml.bind.UnmarshalException - with link

我正在将一个带有@WebService注释的无状态SessionBean部署到JBoss。我使用JBoss生成的WSDL来生成客户端存根。我的问题是调用一个返回对象列表的方法。如果列表为空,则调用成功。但是,如果列表不为空,则会出现以下异常:

com.sun.xml.ws.encoding.soap.DeserializationException: Failed to read a response: javax.xml.bind.UnmarshalException
 - with linked exception:         
[javax.xml.bind.UnmarshalException: Unable to create an instance of com.companyname.api.ws.DataItemType                                                     
 - with linked exception:
[java.lang.InstantiationException]]
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:124)
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
    at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
    at $Proxy34.getWorkflows(Unknown Source)
    at com.companyname.api.SimpleClient.go(SimpleClient.java:48)
通过搜索web,我在这里进行了以下讨论:

但是,我已经正确地设置了@xmlsee内容,它出现在生成的存根类中。我可以确认DataItemType类是抽象的,因此尝试实例化它会导致问题也就不足为奇了。我完全不清楚为什么要实例化DataItemType类(因为它是抽象的)。这是从服务器返回的XML(在我看来是正确的):


1.
0
登记
电子邮件
电子邮件地址
...

有人知道我做错了什么吗?

生成的WSDL有很多问题(请注意,它不是手工制作的)。我没有更改任何特定的内容来说明抛出此特定异常的原因(或者,例如,在生成不正确的WSDL时没有失败的原因)

一旦我调整了注释以便创建了一个有效的WSDL,那么我就遇到了我正在使用的JAX-WS版本的进一步问题。我最终升级了JBoss使用的版本,这反过来又导致我需要将较新的JAX-WS JAR放在JRE认可的目录中


我不打算详细说明我做了什么,因为我没有做任何具体的事情来解决这个问题。如果其他人看到了,我建议您在生成WSDL时使用非常具体的注释,并仔细查看您的WSDL。

我也有同样的问题,不知道如何解决。克里希纳,您能给我更多的细节吗?我不知道它是否具体相关,但尝试不同的JAX-WS版本可能是值得的。另外,非常小心地处理注释(注意不同的版本将以不同的方式处理注释)可能会有所帮助。当我试图为显示此错误的类创建webservice时。这就像当我给那个类返回类型时,它会显示错误,比如“返回类型不受支持,可能会导致错误或导致数据丢失”。这就是我得到的错误。很抱歉,我没有任何建议:(你有什么进展吗?如果你真的解决了,也许可以添加一条评论来解释你做了什么。好吧,让我自己把我的问题贴出来,这样你就会知道真正的问题是什么。你可以给出建议。我真的不投反对票。人们可以随意给出任何建议。
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
    <env:Header></env:Header>
    <env:Body>
        <ns2:getWorkflowsResponse xmlns:ns2="http://ws.api.companyname.com/">
            <return>
                <id>
                    <identifier>1</identifier>
                    <version>0</version>
                </id>
                <goal>ENROLL</goal>
                <dataItemType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="DataItemTypeText">
                    <attributeName>email</attributeName>
                    <displayName>Email Address</displayName>
                </dataItemType>
                ...
            </return>
        </ns2:getWorkflowsResponse>
    </env:Body>
</env:Envelope>