Web服务(服务器 - 客户端)。服务器使用外部项目

时间:2015-07-07 10:02:34

标签: java web-services client server informix

我正在使用具有以下结构的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项目(声明外观和服务)。

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

  

线程“main”中的异常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。(未知来源)       at com.sun.xml.internal.ws.api.BindingID。(Unknown Source)       at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(Unknown Source)       在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(未知来源)       at java.security.AccessController.doPrivileged(Native Method)       at java.net.URLClassLoader.findClass(Unknown Source)       at java.lang.ClassLoader.loadClass(Unknown Source)       at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)       at java.lang.ClassLoader.loadClass(Unknown Source)       ......还有14个

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

  

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

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

要点:

我需要以下内容。

客户 - &gt;服务器 - &gt; Informix Java项目 - &gt;服务器 - &gt;客户端。

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

提前谢谢

1 个答案:

答案 0 :(得分:0)

问题解决了。

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