Java RuntimeModelerException:类clientpackage.IClientPortClass上不存在WebService批注

Java RuntimeModelerException:类clientpackage.IClientPortClass上不存在WebService批注,java,web-services,jax-ws,webservice-client,weblogic-10.x,Java,Web Services,Jax Ws,Webservice Client,Weblogic 10.x,我用JDK1.6.045创建了一个JAX-WS客户机。我在一个war项目中使用了生产出来的罐子,它也打包在ear中。 在Tomcat中,我可以使用webservice客户端调用,并毫无问题地获得响应。然而,在Weblogic 10.3.6服务器中,我遇到了以下异常: ClientPortClass service = new ClientPortClass(); IClientPortClass port = service.getPortXML(); ---> this line pro

我用JDK1.6.045创建了一个JAX-WS客户机。我在一个war项目中使用了生产出来的罐子,它也打包在ear中。 在Tomcat中,我可以使用webservice客户端调用,并毫无问题地获得响应。然而,在Weblogic 10.3.6服务器中,我遇到了以下异常:

ClientPortClass service = new ClientPortClass();
IClientPortClass port = service.getPortXML(); ---> this line produces below error:

com.sun.xml.ws.model.RuntimeModelerException: A WebService annotation is not present on class: clientpackage.IClientPortClass
    at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:237)
    at com.sun.xml.ws.client.WSServiceDelegate.buildRuntimeModel(WSServiceDelegate.java:762)
    at weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegate.buildRuntimeModel(WLSProvider.java:1026)
    at com.sun.xml.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceDelegate.java:746)
    at com.sun.xml.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:737)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:361)
    at weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegate.internalGetPort(WLSProvider.java:978)
    at weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegate$PortClientInstanceFactory.createClientInstance(WLSProvider.java:1083)
    at weblogic.wsee.jaxws.spi.ClientInstancePool.takeSimpleClientInstance(ClientInstancePool.java:376)
    at weblogic.wsee.jaxws.spi.ClientInstancePool.take(ClientInstancePool.java:232)
    at weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegate.getPort(WLSProvider.java:896)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:344)
    at weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegate.getPort(WLSProvider.java:836)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:326)
    at javax.xml.ws.Service.getPort(Service.java:92)
    at clientpackage.ClientPortClass.getPortXML(ClientPortClass.java:58)
    ...
我检查了jax ws生成的ClientPortClass类,它具有以下结构:

/**
 * Web Service
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.2.8
 * Generated source version: 2.1
 */
@WebServiceClient(name = "ClientPortClass", targetNamespace = "transactionData:ClientPortClass", wsdlLocation = "wsdlURL...")
public class ClientPortClass extends Service{
...
 @WebEndpoint(name = "portXML")
    public IClientPortClass getPortXML(WebServiceFeature... features) {
    ...}
}
IClientPortClass:

/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.2.8
 * Generated source version: 2.1
 */
@WebService(name = "IClientPortClass", targetNamespace = "transactionData:ClientPortClass")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@XmlSeeAlso({
    ObjectFactory.class
})
public interface IClientPortClass {

    @WebMethod(action = "trigger")
    @WebResult(name = "message", targetNamespace = "transactionData:data", partName = "result")
    public Message trigger(
        @WebParam(name = "requestMessage", targetNamespace = "transactionData:data", partName = "input")
        RequestMessage input);
}
我观察到weblogic使用glassfish.jaxws.rt_1.3.0.0_2-1-5.jar。com.sun.xml.ws.model.RuntimeModelerException来自该jar。我不知道,但可能有关系


您对RuntimeModelerException有什么建议:类clientpackage.IClientPortClass上不存在WebService注释

例如,您需要将@WebService注释添加到implement类中
@WebService(endpointInterface=“com…”,targetNamespace=“…”)

我为这个错误挣扎了好几天。这里是我在weblogic 10.3.6下的解决方案。 不要使用ApacheCXF或其他工具。 从1.6开始,使用jdk提供的wsimport创建客户机

wsimport -p com.sample -keep -verbose http://yourservice?wsdl
使用放置在用于编译项目的jdk下的wsimport工具。 检查您的weblogic-application.xml,如果存在javax.jws.*请将其注释掉

<wls:prefer-application-packages>
    <wls:package-name>antlr.*</wls:package-name>
    <wls:package-name>javax.persistence.*</wls:package-name>
    <!-- 
    <wls:package-name>javax.jws.*</wls:package-name>
     -->
</wls:prefer-application-packages>

antlr*
javax.persistence*

没有人有答案/意见?提前谢谢..我有同样的pb,你找到解决方案了吗?