Java 从WebService调用另一个函数

Java 从WebService调用另一个函数,java,web-services,Java,Web Services,我有一个关于从另一个包调用一个包中的java函数的查询 我有两个项目,例如proj1-简单java项目,proj2-在eclipse中创建的web服务项目 在proj2内的Web服务中,我从proj1调用包funclib中的类FooClass{}中的函数say foo,但得到错误: 线程“main”org.apache.axis2.AxisFault中出现异常:funclib/FooClass 我已经创建了proj1.jar,并将其添加到构建路径和类路径中 如果我将包funclib从proj1复

我有一个关于从另一个包调用一个包中的java函数的查询

我有两个项目,例如proj1-简单java项目,proj2-在eclipse中创建的web服务项目

在proj2内的Web服务中,我从proj1调用包funclib中的类FooClass{}中的函数say foo,但得到错误: 线程“main”org.apache.axis2.AxisFault中出现异常:funclib/FooClass

我已经创建了proj1.jar,并将其添加到构建路径和类路径中

如果我将包funclib从proj1复制到proj2,那么它可以正常工作。但是,我想在两个不同的项目中分别保留这两个包。
有人知道我如何解决这个错误吗?

在检查了源代码之后,可能这一部分正在发挥作用:

org.apache.axis2.util.Utils.java

其本身被称为:

org.apache.axis2.description.OutInAxisOperation


因此,在处理响应时似乎出现了问题。由于可能有一百万个原因,我建议您在此处设置一个断点并进行调试,以找出根本原因。

请发布整个StackTrace,您将其添加到构建路径的何处?在eclipse项目定义中?你什么时候会有例外?听起来好像您在实际运行proj2时没有导出proj1.jar或没有将其包含在类路径中。您正在将其部署到服务器吗?线程main org.apache.axis2.AxisFault中的异常:funclib/FooClass位于org.apache.axis2.util.Utils.getInboundFaultFromMessageContextUtils.java:531位于org.apache.axis2.description.OutInAxisOperationClient.HandlerResponseOutinaxisOperation.java:375位于org.apache.axis2.description.OutInAxisOperationClient.sendOutInAxisOperation.java:421位于org.apache.axis2.description.OutInAxisOperationClient.executeImplOutInAxisOperation.java:229位于org.apache.axis2.client.OperationClient.executeOperationClient.java:165at com.classes.concatatestub.concatenateStringconcatatestub.java:185位于java:20我将其添加为:proj2right click->build path->configure build path->libraries->Add External jar。到Proj2类路径为:运行->运行配置->类路径->添加外部JAR。我只是在部署proj2。当我运行WebService客户端proj3时,在前面的评论中显示了异常。谢谢。我会试试的。但是,当我将包funclib从proj1复制到proj2时,它是如何工作的?
...
// If its a REST response the content is not a SOAP envelop and hence we will
// Have use the soap body as the exception
if (messageContext.isDoingREST() && soapBody.getFirstElement() != null) {
    return new AxisFault(soapBody.getFirstElement().toString());
}
...
...
// rampart handlers change the envelope and set the decrypted envelope
// so need to check the new one else resenvelope.hasFault() become false.
resenvelope = responseMessageContext.getEnvelope();
if (resenvelope.hasFault()||responseMessageContext.isProcessingFault()) {
    if (options.isExceptionToBeThrownOnSOAPFault()) {
        // does the SOAPFault has a detail element for Excpetion
        throw Utils.getInboundFaultFromMessageContext(responseMessageContext);
    }
}
...