WSO2 ESB使用AuthenticationAdmin

时间:2013-07-21 10:53:27

标签: wsdl wso2 esb

我有一个NetBeans项目并尝试使用WSO2 ESB 4.6.0中的以下WSDL创建一个Web服务客户端,就像在此example中一样:

https://localhost:9443/services/AuthenticationAdmin?wsdl

但是当NetBeans尝试创建客户端时,我收到一个错误: NetBeans Error adding Web Service Client

为什么会这样?我创建了其他Web服务客户端,他们正在工作,但这不起作用,我不知道为什么......

如果我尝试使用eclipse,我也会收到错误:

IWAB0399E Error in generating Java from WSDL:  java.io.IOException: ERROR: Missing <soap:fault> element inFault "AuthenticationAdminAuthenticationException" in operation "AuthenticationAdminAuthenticationException", in binding logout
    java.io.IOException: ERROR: Missing <soap:fault> element inFault "AuthenticationAdminAuthenticationException" in operation "AuthenticationAdminAuthenticationException", in binding logout
    at org.apache.axis.wsdl.symbolTable.SymbolTable.faultsFromSOAPFault(SymbolTable.java:2858)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.populateBindings(SymbolTable.java:2549)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:744)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
    at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
    at java.lang.Thread.run(Thread.java:722)

也许WSDL有错误?

1 个答案:

答案 0 :(得分:1)

AuthenticationAdmin WSDL文件正确无误。

注销操作被定义为“One-way”操作。如果查看AuthenticationAdmin.java实现,可以看到logout方法具有以下签名。

public void logout() throws AuthenticationException

请注意,返回类型为“ void ”,表示没有输出。

WSO2使用Apache Axis2 ,使用Axis2生成客户端没有问题。

我刚尝试使用Eclipse&amp;创建客户端Apache Axis2。我可以成功创建存根。

WSO2还使用使用AuthenticationAdmin WSDL创建的服务存根。有关生成客户端的详细信息,请参阅pom.xml

<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
    <arg line="-uri src/main/resources/AuthenticationAdmin.wsdl
    -u -uw -o target/generated-code
    -ns2p http://common.core.carbon.wso2.org/xsd=org.wso2.carbon.authenticator.stub.authentication,http://authentication.services.core.carbon.wso2.org=org.wso2.carbon.authenticator.stub,http://authentication.services.core.carbon.wso2.org/xsd=org.wso2.carbon.authenticator.stub"/>
    <classpath refid="wsdl2java.classpath"/>
</java>

当我尝试使用Apache Axis生成客户端时,我得到了与您显示的相同的错误。因此,请确保使用 Apache Axis2 作为Web服务运行时。还要确保在Eclipse Preferences -> Web Services -> Axis2 Preferences中指向Axis2目录。

我也看到NetBeans尝试使用wsimport实用程序。可能是它不能正确支持单向操作。

我建议您使用Apache Axis2生成客户端。