Tag: soap

如何将pfx文件转换为jks然后使用它来通过使用wsdl生成的类来签署传出的soap请求

我正在寻找一个代码示例,该示例演示如何使用PFX证书通过SSL访问安全Web服务。 我有证书和密码,我开始使用下面提到的命令创建一个KeyStore实例。 keytool -importkeystore -destkeystore “C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\dvs.keystore” -srckeystore “C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\key.pfx” -srcstoretype pkcs12 -deststoretype JKS -srcstorepass ******* 然后我使用wsimport -keep -verbose -extension https://sandpit.dvshub.com.au:19443/Bus/VerificationServiceBus.svc?wsdl命令生成Java文件。 之后我创建了一个主类,在其中我指定了几个参数,例如这些证书的位置。 System.setProperty(“javax.net.ssl.trustStore”, trustStoreFile); System.setProperty(“javax.net.ssl.trustStorePassword”, trustStorePassword); System.setProperty(“javax.net.ssl.keyStore”, certificateFile); System.setProperty(“javax.net.ssl.keyStorePassword”, certificatePassword); System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”); System.setProperty(“javax.net.ssl.keyStore”, “C:\\Users\\Administrator\\Desktop\\dvs\\key.pfx”); System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”); System.setProperty(“javax.net.ssl.keyStorePassword”, certificatePassword); 然后我最终调用了wsimport使用它生成的服务创建的web方法。 CreatedService service = ServiceFactory/Port/Creator.getCreatedService(); // Where ‘CreatedService’ and ‘ServiceFactory/Port/Creator’ were created by wsimport: this code entirely […]

使用PHP SoapClient和Java JAX-WS RI(Webservice)

对于新项目,我们希望使用JAX-WS RI在Java中构建Web服务,对于Web服务客户端,我们希望使用PHP。 在一个关于JAX-WS RI的小教程中,我找到了这个示例Web服务: package webservice; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; @WebService @SOAPBinding(style = Style.RPC) public class Calculator { public long addValues(int val1, int val2) { return val1 + val2; } } 并为Web服务器: package webservice; import javax.xml.ws.Endpoint; import webservice.Calculator; public class CalculatorServer { public static void main(String args[]) { Calculator server = new Calculator(); […]

在MobileFirst服务器(Liberty服务器)中使用jax-ws

我们正在尝试从Java JAX-RS适配器访问SOAP 1.1 Web服务。 我们正在使用从我们的WSDL生成的SOAP客户端。 但是当解组肥皂故障时,我们得到以下exception: … Caused by: java.lang.ExceptionInInitializerError at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78) at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135) at com.sun.proxy.$Proxy196.rechercherContrats(Unknown Source) at fr.sma.prod.adapter.ContratResource.rechercherContrats(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63) … Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bind.api.JAXBRIContext at com.sun.xml.internal.ws.fault.SOAPFaultBuilder$1.run(SOAPFaultBuilder.java:570) at com.sun.xml.internal.ws.fault.SOAPFaultBuilder$1.run(SOAPFaultBuilder.java:566) at java.security.AccessController.doPrivileged(Native Method) at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createJAXBContext(SOAPFaultBuilder.java:565) at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.(SOAPFaultBuilder.java:555) … […]

安全Java SOAP Web服务 – Active Directory身份validation信任

我想在Java生产者和Java消费者之间构建一个安全的Web服务。 我想使用生产者和消费者运行的域帐户使用Active Directory进行身份validation。 你能举个例子吗? (即:AD可信任的自动替代手动密钥库。)

Java Webservices和SOAP – 更改元素名称

我正在编写一个返回自定义类型的java Web服务。 一切正常,除非我查看SOAP响应时它不使用名称“myType” – 它使用“return” 这是我的SOAP响应 – 基本上它表示“返回”,我希望它说“mytype” S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> sdf sdf 类包myWebserivce import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.WebParam; @WebService(serviceName = “myWebserivce”) public class myWebserivce{ @WebMethod(operationName = “Method”) public MyType Method(@WebParam(name = “string1”) String string1, @WebParam(name = “string2”) String string2) { MyType mt = new MyType(); mt.setField1(string1); mt.setfield2(string2); return mt; } } MyType类 import javax.xml.bind.annotation.XmlRootElement; […]

为什么这个简单的SOAP客户端不工作(org.apache.http)?

我想将一个XML文件作为请求发送到SOAP服务器。 这是我的代码:( 使用org.apache.http从使用SOAP操作发送HTTP Post请求进行了修改) import org.apache.http.client.*; import org.apache.http.client.methods.*; import org.apache.http.impl.client.*; import org.apache.http.entity.StringEntity; import org.apache.http.protocol.HTTP; import org.apache.http.HttpResponse; import java.net.URI; public static void req() { try { HttpClient httpclient = new DefaultHttpClient(); String body=”xml here”; String bodyLength=new Integer(body.length()).toString(); URI uri=new URI(“http://1.1.1.1:100/Service”); HttpPost httpPost = new HttpPost(uri); httpPost.setHeader( “SOAPAction”, “MonitoringService” ); httpPost.setHeader(“Content-Type”, “text/xml;charset=UTF-8”); StringEntity entity = new StringEntity(body, […]

在Java中通过代理发送SOAP消息

我需要知道如何设置代理并确认它是否正常工作。 我做了一个看起来像这样的测试程序: 您可以在哪里指定代理地址和端口号。 (我找到了地址和端口: http : //www.freeproxylists.net/ ) 当选中“使用代理”时,SOAP调用看起来像这样: Socket socket = new Socket(); SocketAddress sockaddr = new InetSocketAddress(PROXY_ADDRESS, PROXY_PORT); socket.connect(sockaddr, 10000); Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(socket.getInetAddress(), PROXY_PORT)); URL url = new URL(urlStr); HttpURLConnection uc = (HttpURLConnection) url.openConnection(proxy); return connection.call(message, uc); 这里的问题是最后一行SOAPConnection.call(..)不允许HttpURLConnection作为输入,从而给出: 错误的endPoint类型 知道如何将代理地址添加到SOAP调用并validation代理是否正在使用? import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.net.HttpURLConnection; import […]

使用AXIS2将用户/密码添加到SOAPHeader以进行WebService客户端调用

请帮助:我试图从SOAPUI调用WebService,我注意到该服务需要用户名和密码,我通过请求参数提供。 我注意到原始XML包含添加到SOAPHeader的用户/密码片段。 摘录如下: testusertestpassword&RYadQak91mr7dB+5hyt8yw==2011-10-24T20:13:43.039Z 现在我想通过添加用户/密码详细信息来实现同样的目的,如下面的代码所示:代码片段是: org.tempuri.myService.MyServiceStub stub = new org.tempuri.myService.MyServiceStub(); ServiceClient sc = stub._getServiceClient(); HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator(); auth.setUsername(“testuser”); auth.setPassword(“password$”); sc.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE,auth); org.tempuri.myService.MyServiceDocument myService4 = (org.tempuri.myService.MyServiceDocument)getTestObject(org.tempuri.myService.MyServiceDocument.class); MyService lval = MyService4.addNewMyService(); MyServiceParameters lvParams = lval.addNewParameters(); lvParams.setA(“24”); lvParams.setB(“10”); lval.setParameters(lvParams); myService4.setMyService(lval); 但我得到了Axis故障exception,需要帮助我在上面的代码中做错了。 轴故障exception详细信息: org.apache.axis2.AxisFault: Exception occurred while executing service ‘MyService’. at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531) at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) […]

在Spring Web Services Framework中流式传输MTOM Web服务

我想使用MTOM和Spring WS将大文件从服务器发送到客户端。 我意识到这不是这类事情的最佳方法,但这是一项要求。 我有MTOM设置,它适用于50mb左右的小文件。 我遇到较大文件的内存不足错误,并通过更改不同的堆空间大小,我可以发送稍大的文件,但没有接近1GB。 1GB是我的测试用例。 如何将MTOM服务从服务器流式传输或分块到客户端? 我正在使用Java 6更新17,Tomcat 6和Spring WS 1.5.7以及SaajSoapMessageFactory。 我找到了使用jax-ws进行流式传输的示例,但我不确定如何将其合并到Spring WS端点中。 使用MTOM / XOP优化二进制数据传输

如何在同一端口托管SOAP服务和REST服务?

有谁知道如何配置它,以便SOAP服务和REST服务可以在应用程序服务器之外使用Jersey(Grizzly)共享同一个端口? 我的肥皂服务在www.someurl.com:port/soap/crm 我的rest服务是www.someurl.com:port/crm 这些服务共享相同的端口但不是相同的基本URL,因此应该能够在该端口上并行运行。 但是,有一个端口绑定错误.. 所有这些都在自定义服务应用程序中,并且没有web.xml等。 REST服务使用Jersey,Soap服务是在端点上发布的类“ReceptionService”。 URI soapUri = URI.create(“192.168.0.0:1234\soap\Crm”) URI restUri = URI.create(“192.168.0.0:1234\crm”) // START SOAP SERVICE Object reception = getObjectResource(ReceptionService.class); Endpoint e = Endpoint.publish(soapUri, reception); // START REST SERVICE ResourceConfig rc = new ResourceConfig().packages(“company.rest”); HttpServer server = GrizzlyHttpServerFactory.createHttpServer(restUri, rc); 当我尝试这个时,Grizzly吐出’java.net.BindException:地址已经在使用中:bind’ 我的肥皂服务接待设置如下: @WebService(targetNamespace = “company.crm”) @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = […]