Tag: axis2

Axis 2 webservice SSL通信

我从这段代码得到了Soap Response SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance(); SOAPConnection connection = sfc.createConnection(); SOAPMessage soapMessageResponse = connection.call(soapRequest, new URL(serviceLocation)); 如何使其基于SSL? 我知道如何从SSLContext创建SSLSocketFactory给我指定的密钥库 。 如何告诉SOAPConnection类有关SSLSocketFactory或SSLContext ? 这样我的沟通就可以得到保障。 我不想在系统属性或xml文件中设置密钥库。 我正在使用Websphere 7。 编辑: Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:600) at com.ibm.ws.webservices.engine.soap.SOAPConnectionImpl.callJAXWSDispatch(SOAPConnectionImpl.java:416) … 49 more Caused by: javax.xml.soap.SOAPException: javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem at com.ibm.ws.webservices.engine.xmlsoap.saaj13only.SOAPConnectionJAXWS.call(SOAPConnectionJAXWS.java:72) … 54 […]

访问Java Web服务时出现Coldfusion错误

我创建了一个Java-AXIs2 webservice,它返回一个java对象(用户定义的类)。 我尝试使用它在coldfusion上访问它 当我尝试访问此wsObj并执行某些操作时,我收到以下错误 Cannot perform web service invocation getTranscodeVideoFile. The fault returned when invoking the web service operation is: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: No deserializer for {http://www.w3.org/2001/XMLSchema}anyType faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: No deserializer for {http://www.w3.org/2001/XMLSchema}anyType at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:314) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2448) at org.apache.axis.client.Call.invoke(Call.java:2347) at […]

访问NTLM安全WS通过WSO2ESB

大家好我正在尝试在WSO2ESB上设置代理服务以访问NTLMv2安全WS。 我创建了一个调解器类来实现这一目标,但到目前为止还没有运气,我一直保持401状态 这是代码。 代理服务: 调解员类: public class NTLMAuthMediator extends AbstractMediator { private String domain; private String host; private String port; private String username; private String password; public boolean mediate(MessageContext context) { org.apache.axis2.context.MessageContext axis2MsgContext; axis2MsgContext = ((Axis2MessageContext) context).getAxis2MessageContext(); String authString = (String)tmp.get(“Authorization”); HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator(); setCredentials(auth); List authSchemes = new ArrayList(); authSchemes.add(HttpTransportProperties.Authenticator.NTLM); auth.setAuthSchemes(authSchemes); auth.setPreemptiveAuthentication(true); […]

创建Web服务客户端时,没有主题备用名称存在exception

我想使用wsdl2java实用程序创建一个Web服务客户端。 我必须通过SSL连接到此服务器 这个wsdl看起来像这样: https://xxx.xx.xx.xx:8443/api/wsdl/xxxxxxx.wsdl 我使用以下方法生成证书: openssl s_client -connect xxx.xx.xx.x:8443 abcCertificate.pem 并使用以下命令将其添加到密钥库: keytool -import -noprompt -trustcacerts -alias testcert -file abcCertificate.pem -keystore /usr/java/jdk1.7.0_06/jre/lib/security/cacerts -ext san=ip:xxx.xx.xx.xx 当我尝试使用wsdl2java创建Web服务客户端时,它会抛出exception : javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present 我使用此链接中的这些信息。

使用Metro的Ws-Security标头

我有一个实现WS-Security的Web服务,但没有在WSDL中定义策略。 我可以使用Axis 2作为客户端成功使用此Web服务。 我试图使用Metro 2使用相同的Web服务,但wsse:security标头不会。 仅当服务定义了不受我控制的安全策略时,它才有效。 我通过创建示例Web服务对此进行了测试,除非我定义策略,否则我的metro客户端永远不会发送wsse:security标头。 使用Metro有什么我想念的吗? 编辑 – – – – – – – – – – – – – – – – – – – – – – – – – —————————————– 我创建了wsdl的本地副本,并在其中定义了策略。 我使用这个wsdl创建了Web服务客户端,但仍然没有安全头。 wsit-client.xml文件看起来很好。 我甚至将所有配置与Web服务的客户端进行了比较,该客户端定义了策略并且配置相同但仍然不起作用。 截至目前我的结论是,城域客户端需要实际的Web服务定义策略。 编辑 – – – – – – – – – – – – – – […]

Axis2 ServiceClient选项忽略超时

我在版本中使用Axis2: Implementation-Version: 1.7.0-SNAPSHOT Implementation-Vendor-Id: org.apache.axis2 Implementation-Vendor: The Apache Software Foundation Jenkins-Build-Number: 1847 我想将ServiceClient的超时设置为2000毫秒,这是我们的代码: Options options = new Options(); options.setTo(new EndpointReference(getUserServiceEndPoint())); options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE); // setting timeout to 2 second should be sufficient, if the server is // not available within the 3 second interval you got a problem anyway options.setTimeOutInMilliSeconds(2000); ServiceClient sender = new ServiceClient(); sender.engageModule(new […]

Axis2和Webservices:文件上传

我正在尝试使用Axis2编写一个简单的Web服务。 它的行为非常简单:它在输入中获取一个文件并存储它。 我已经尝试了几件事来做这个“简单”的文件上传服务。 最初,我还尝试使用Java2WSDL和WSDL2Java来创建WSDL文件,并希望传递java.io.File数据类型的客户端。 当然它没有用。 我现在正尝试使用SOAP附件和MTOM或SwA上传文件。 我在axis2 \ WEB-INF \ conf \ axis2.xml中启用了它们 服务器端,我的服务操作的签名是: public String uploadAttachment(OMElement omEle); 这是使用Java2WSDL工具生成的WSDL: 客户端,我试图打电话给服务: Options options = new Options(); options.setTo(new EndpointReference(“http://localhost:8080/axis2/services/ImportModule”)); options.setProperty(Constants.Configuration.ENABLE_SWA, Constants.VALUE_TRUE); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI); ServiceClient sender = new ServiceClient(null,null); sender.setOptions(options); OperationClient mepClient = sender.createClient(ServiceClient.ANON_OUT_IN_OP); MessageContext mc = new MessageContext(); SOAPFactory factory = OMAbstractFactory.getSOAP12Factory(); SOAPEnvelope env = factory.getDefaultEnvelope(); mc.setEnvelope(env); […]

如何使用WSDL2Java生成的文件?

我使用在axis2-1.5中找到的wsdl2java生成了.java文件。 现在它生成了这个文件夹结构中的文件:src / net / mycompany / www / services / services文件夹中的文件是:SessionIntegrationStub和SessionIntegrationCallbackHandler。 我现在想要使用web服务。 我将net文件夹添加到CLASSPATH环境变量中。 我的java文件现在使用以下方法导入webservice: import net.mycompany.www.services; public class test { public static void main(String[] args) { SessionIntegrationStub stub = new SessionIntegrationStub(); System.out.println(stub.getSessionIntegration(“test”)); } } 现在当我尝试使用以下方法编译时: javac test.java 我得到:包net.mycompany.www不存在。 任何想法?

org.apache.axis2.AxisFault:在Webservice中传递对象数组时,Unknow类型无法序列化

我创建了一个以DTO作为参数的Web服务。 DTO包含一系列对象。 我已经生成了WSDL,骨架和客户端。 我试图调用webservice,如果我传递字符串数组说:Serializable [] array = new String [] {“a”,“n”}; 它工作正常。 现在我的要求是传递HashMaps数组我无法这样做,即使HashMap实现了Serializable。 HashMap hashMap1 = new HashMap(); HashMap hashMap2 = new HashMap(); hashMap1.put(“key1”, “value1”); hashMap2.put(“key1”, “value1”); Serializable[] maps = new HashMap[] { hashMap1, hashMap2 }; myDTO.setParams(maps); request.setDTO(myDTO); InvokeServiceResponse response = stub.serviceMethod(request); 我正在使用Axis2。 2.1.5,Tomcat 6和Eclipse Helios。 堆栈跟踪我在这里粘贴参考。 org.apache.axis2.AxisFault: Unknow type can not serialize at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) […]

使用带有自己的安全框架的axis2 ramaprt模块

我在我的项目中使用axis2实现了webservice(服务器端)。 我们希望在现有Web服务中启用WS-security。 我们正在评估apache ramapart模块是否符合我们的需求。 这是我们的要求:基本上我们有内部安全框架,提供加密,签名和令牌生成function。 我们的内部安全框架基本上需要以XMLforms的一组配置,并且它公开各种API以执行各种安全操作。 现在有了上述环境,我可以想到三种可能的解决方案: – 我可以围绕内部安全框架开发一个axis2模块,并在安全阶段将其安装为.mar文件。 所以我不会使用apache rampart。 但是这种方法的问题是我不能使用ws-security策略来指定安全断言并确保传入的安全性令牌符合有效的策略。 这就像重新发明轮子已经做的那样。 我相信apache rampart强调要求apache wss4j模块进行安全操作。 我相信apache wss4j模块提供了一种注册第三方安全提供程序的方法(通过实现CryptoProvider接口)。 我不确定这是否是可行和可行的解决方案。 请建议。 Ws-security策略允许使用自定义令牌。 可以使用我们的内部安全框架构建此自定义令牌。 所以基本上它使我们能够使用apache rampart模块创建ws-security策略,并使用我们的安全框架开发自定义令牌。 但我在互联网上找不到这方面的帮助。 有谁可以帮助举例。 任何其他建议也是最受欢迎的。