我正在通过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);
}
我想我必须导入一些安全策略。如果是这样,有人可以帮助我 它(任何教程或指示)。
提前致谢
答案 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>
恭喜!