获取异常java.lang.NoSuchMethodError:org.apache.neethi.Constants.isPolicyElement

时间:2012-10-10 04:38:22

标签: java web-services ssl-certificate wsdl2java

我正在通过SSL连接到Web服务。 我导入了证书并将其添加到java中 密钥库。然后我为Web服务创建了客户端存根 使用wsdl2java。

当我在程序中使用它并尝试调用服务时,它会抛出follownig(异常的一部分)

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.neethi.Constants.isPolicyElement(Ljavax/xml/namespace/QName;)Z
    at org.apache.axis2.util.PolicyUtil.getPolicyChildren(PolicyUtil.java:287)
    at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:157)
    at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:857)
    .
    .
    .

我的代码有点像这样

public static void main(String[] args) {
    //generated by wsdl2java
    Clientstub stub = new ClientStub(endpoint); 
    .
    .

    //req is the passed parameter
    stub.requestServic(req);        

}

我想我必须导入一些安全策略。如果是这样,有人可以帮助我 它(任何教程或指示)。

提前致谢

2 个答案:

答案 0 :(得分:5)

看起来您使用的是neethi.jar的旧版本,可以将最新版本的neethi添加到classpath中。您可以从neethi-3.0.1.jar开始找到方法org.apache.neethi.Constants.isPolicyElement()

您可以从

下载此版本

http://www.java2s.com/Code/JarDownload/neethi/neethi-3.0.1.jar.zip

答案 1 :(得分:1)

我使用W12c,并在项目内的weblogic.xml中添加此行。

org.apache.neethi

示例:

<wls:weblogic-web-app
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j</wls:package-name>
            <wls:package-name>org.apache.neethi</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

恭喜!