【问题标题】:Web Service (Server - Client). Server uses external projectWeb 服务(服务器 - 客户端)。服务器使用外部项目
【发布时间】:2015-09-24 18:17:06
【问题描述】:

我正在使用具有这种结构的 Web 服务:

服务器:

@WebService @HandlerChain(file="handler-chain.xml") @XmlRootElement 

public class RDA_DenegarRenovacion{

HashMapWrapper map =  new HashMapWrapper();


@WebMethod
public String getServerName() {

    return "RDA - DenegarPropuesta";

}

@WebMethod(operationName="pc_ren_propuesta")
@WebResult(name="hashMapWrapper")

public HashMapWrapper pc_ren_propuesta() {

    HashMap<String,String> realMap = new HashMap<String,String>();
    realMap.put("jaja1", "jeje1");
    realMap.put("jaja2", "jeje2");
    map.setRealMap(realMap);

    //I JUST DECLARE THE FACADE AND SERVICE FROM THE IMPORTED PROJECT, 
    //BUT I'M NOT USING THEM YET
    CommonFacade commonFacade = new CommonFacade();
    CommonDataService service = (CommonDataService) commonFacade.commonDataService;


    return map;
}

在服务器方法中,我只是访问同一个工作区中的另一个 java 项目(声明外观和服务)。

为了从另一个项目声明类,我配置了构建路径,还添加了 jar commons-discovery-0.2,因为如果没有,我会收到错误:

线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/commons/discovery/tools/DiscoverSingleton 在 com.ibm.ws.webservices.engine.components.logger.LogFactory$2.run(LogFactory.java:144) 在 com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63) 在 com.ibm.ws.webservices.engine.components.logger.LogFactory.createLogFactory(LogFactory.java:140) 在 com.ibm.ws.webservices.engine.components.logger.LogFactory.(LogFactory.java:97) 在 com.ibm.ws.webservices.engine.xmlsoap.Utils.(Utils.java:49) 在 com.ibm.ws.webservices.engine.soap.MessageFactoryImpl.(MessageFactoryImpl.java:116) 在 com.ibm.ws.webservices.engine.soap.SAAJMetaFactoryImpl.newMessageFactory(SAAJMetaFactoryImpl.java:56) 在 javax.xml.soap.MessageFactory.newInstance(未知来源) 在 com.sun.xml.internal.ws.api.SOAPVersion.(未知来源) 在 com.sun.xml.internal.ws.api.SOAPVersion.(未知来源) 在 com.sun.xml.internal.ws.api.BindingID.(未知来源) 在 com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(未知来源) 在 javax.xml.ws.Endpoint.publish(未知来源) 在 RDA_DenegarRenovacion.publisher.WsPublisher.main(WsPublisher.java:14) 引起:java.lang.ClassNotFoundException:org.apache.commons.discovery.tools.DiscoverSingleton 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) ... 14 更多

有了这一切,我发布了服务器部分,并且在运行客户端时,由于我添加了那个外部 jar,我得到了以下错误:

线程“主”javax.xml.ws.soap.SOAPFaultException 中的异常:HIERARCHY_REQUEST_ERR:尝试在不允许的位置插入节点。 在 com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(未知来源) 在 com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(未知来源) 在 com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(未知来源) 在 com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(未知来源) 在 com.sun.xml.internal.ws.client.sei.SEIStub.invoke(未知来源) 在 $Proxy29.pcRenPropuesta(未知来源) 在 rda_denegarrenovacion.client.WsClient.main(WsClient.java:21)

如果我没有从其他项目声明任何类并且我没有导入任何 jar,那么它可以正常工作。

总结:

我需要以下。

客户端 --> 服务器 --> Informix Java 项目 --> 服务器 --> 客户端。

我在访问 Informix Java 项目时遇到问题。

提前谢谢你

【问题讨论】:

    标签: java web-services client server informix


    【解决方案1】:

    问题解决了。

    我设置了 JAVA_HOME 和 Path 变量,并添加了外部 wsgen jar。重新启动计算机,它工作。

    【讨论】:

      猜你喜欢
      • 2015-05-06
      • 1970-01-01
      • 2023-03-16
      • 2014-08-17
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多