3

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

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

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);        

}

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

提前致谢

4

2 回答 2

6

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

您可以从以下位置下载此版本

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

于 2012-10-10T05:14:11.530 回答
2

我正在使用 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>

恭喜!!

于 2017-09-27T18:05:24.877 回答