&引用;org.apache.axis2.AxisFault:unknown“;使用Java调用web服务时

&引用;org.apache.axis2.AxisFault:unknown“;使用Java调用web服务时,java,web-services,axis2,Java,Web Services,Axis2,我正在尝试使用Java客户端调用web服务。WSDL如下所示: 我的客户: public class Client{ public static void main(java.lang.String args[]){ try{ CompileAndExecuteServiceInterfaceStub stub = new CompileAndExecuteServiceInterfaceStub

我正在尝试使用Java客户端调用web服务。WSDL如下所示:

我的客户:

public class Client{
    public static void main(java.lang.String args[]){
        try{
            CompileAndExecuteServiceInterfaceStub stub =
                new CompileAndExecuteServiceInterfaceStub
                ("http://192.168.1.3:8080/axis2/services/CompileAndExecuteServiceInterface");

            Compile comp = new Compile();
            comp.setArgs0("Test");
            comp.setArgs1("public class Test { public static void main(String[] args) { System.out.println(\"Hello\");}}");
            String[] classpath = {};
            comp.setArgs2(classpath);
            stub.compile(comp);

        } catch(Exception e){
            e.printStackTrace();


        }
    }

}
现在运行客户端时,出现以下错误:

org.apache.axis2.AxisFault: unknown


at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:517)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at de.dax.compileandexecuteclient.CompileAndExecuteServiceInterfaceStub.compile(CompileAndExecuteServiceInterfaceStub.java:184)
at de.dax.compileandexecuteclient.Client.main(Client.java:17)</blockquote>
org.apache.axis2.AxisFault:未知
位于org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:517)
位于org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
在org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)上
在org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)上
位于org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
在de.dax.compileandexecuteclient.CompileAndExecuteServiceInterfaceStub.compile(CompileAndExecuteServiceInterfaceStub.java:184)
位于de.dax.compileandexecuteclient.Client.main(Client.java:17)

我在本地机器上试用了服务器的业务逻辑,它在那里工作。该服务创建文件和文件夹。允许web服务这样做吗?我还编写了一个简单的“Hello World”web服务,并将其部署到服务器上。这很好。

从提供的日志中,我无法确定是什么问题。尝试将Axis2的日志级别设置为“debug”(请参阅Axis2安装根目录中的两个日志配置),并查看详细信息以了解确切原因。Axis2在传播来自Web服务的错误时往往有点稀疏

问题是我的服务中存在NullPointerException

当您遇到这些“未知”Axis故障时,一定要查看服务器日志!客户端堆栈跟踪很可能不够详细,无法跟踪错误

我相信dax在上面指出,他在更详细的服务器端堆栈跟踪中发现了NullPointerException。它看起来像:

org.apache.axis2.AxisFault
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)

    [....]

Caused by: java.lang.NullPointerException

    [....]

你确定要将classpath设置为空吗?在我的例子中,如果它的对象是web服务,它不会命中它,但是如果它的字符串是web服务,它就会命中它。我在这里补充了一个问题: