从WebService调用另一个函数

时间:2014-04-19 09:38:32

标签: java web-services

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

我在eclipse中创建了2个项目(例如proj1 - 简单java项目,proj2 - web服务项目)。

在proj2里面的我的Web服务中,我在proj1的包funclib中调用FooClass {}类中的foo()函数,但是得到错误:    “线程中的异常”主“org.apache.axis2.AxisFault:funclib / FooClass”

我创建了proj1.jar并将其添加到“构建路径”以及“classpath”中。

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

1 个答案:

答案 0 :(得分:0)

检查出来的资源(http://grepcode.com/file/repo1.maven.org/maven2/org.apache.axis2/axis2-kernel/1.4.1/org/apache/axis2/util/Utils.java#Utils.getInboundFaultFromMessageContext%28org.apache.axis2.context.MessageContext%29),大概这个部分正在发挥作用:

<强> org.apache.axis2.util.Utils.java

...
// 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());
}
...

本身的名称来自:

<强> org.apache.axis2.description.OutInAxisOperation

...
// 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);
    }
}
...

因此在处理响应时似乎存在问题。因为可能有一百万个理由我鼓励你在这里设置一个断点并调试它以找出根本原因。