Tag: soap

JAX-WS密码类型PasswordText

我有一个简单的命令行Java JAX-WS应用程序来测试SOAP请求,但是服务器期望密码类型是PasswordText,我很难理解如何设置它… 代码如下: @WebServiceRef private static final HelloService helloService = new HelloService(url, new QName( URL, “HelloService”)); public static void main(final String… args) { try { final HelloPort helloPort = helloService.getHelloPort(); final BindingProvider hB = ((BindingProvider) helloPort); hB.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, END_POINT_ADDRESS); hB.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, USERNAME); hB.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, PASSWORD); … 我已经使用SOAP-UI测试了请求,所以我知道它正在运行。 任何有关设置密码类型的帮助将不胜感激。 谢谢。

用于Java的进程内SOAP服务服务器

好的,我正在开发一个程序,它将被部署到许多机器上(Windows,Linux,AIX,z / Linux,openVMS等)。 我希望该应用程序包含SOAP Web服务,但我不想捆绑tomcat或为服务运行单独的服务(我希望它们与应用程序的其余部分在同一进程中)。 基本上我正在寻找的是我可以定义一个类(比如WebServices )。 我也可以编写WSDL或任何其他类型的服务描述。 我想要这样的东西: SOAPServer server = makeMeASoapServer(); //do config on the server server.add(new WebService(…)); server.listen(port); 显然名称和参数会有所不同。 我一直在看Axis,它似乎提供了这个,但我不知道我需要使用哪些类。 我是否因为想要这种行为而疯狂? 我不敢相信更多的人不会这样做,我一直在.NET客户端中使用嵌入式Web服务。

如何使用java解析XOP / MTOM SOAP响应?

我只是想知道,有没有简单的方法来解析MTOM / XOP SOAP响应。 问题是我使用普通HTTP发送soap消息和javax.xml来解析响应。 但是有些服务用mulipart / related响应我,它需要更复杂的逻辑来解析它(性能很重要)。 所以我想我可以以某种方式利用apache cxf,apache axiom或任何其他库来解析MTOM / XOP SOAP响应吗?

如何在Spring Boot中禁用ErrorPageFilter?

我正在创建一个应该在Tomcat上运行的SOAP服务。 我正在为我的应用程序使用Spring Boot,类似于: @Configuration @EnableAutoConfiguration(exclude = ErrorMvcAutoConfiguration.class) public class AppConfig { } 我的网络服务(例子): @Component @WebService public class MyWebservice { @WebMethod @WebResult public String test() { throw new MyException(); } } @WebFault public class MyException extends Exception { } 问题: 每当我在webservice类中抛出exception时,服务器上都会记录以下消息: ErrorPageFilter:无法转发请求[/ services / MyWebservice]的错误页面,因为响应已经提交。 因此,响应可能具有错误的状态代码。 如果您的应用程序在WebSphere Application Server上运行,则可以通过将com.ibm.ws.webcontainer.invokeFlushAfterService设置为false来解决此问题 题: 我怎么能阻止这个?

CXF 2.4.2:找不到命名空间http://schemas.xmlsoap.org/soap/http的管道启动器

我有一个从wsdl生成的服务客户端。 我正在尝试呼叫远程服务,我收到下面看到的导管启动器错误。 我尝试了很多解决方案但没有成功。 我找到了推荐使用http-jetty扩展的解决方案(旧post)。 我不相信这对我有意义,因为服务器没有在本地运行。 我还发现帮助我的最近配置是一个示例cxf.xml文件,其中包含: http://cxf.apache.org/transports/local http://cxf.apache.org/transports/http http://schemas.xmlsoap.org/soap/http http://schemas.xmlsoap.org/wsdl/soap/http 此配置提供有关如何配置传输工厂并将其绑定到http://schemas.xmlsoap.org/soap/http的指导 。 当我尝试使用HTTPTransportFactory时 ,我收到一个exception,它无法初始化(没有这样的方法错误)。 Caused by: org.apache.cxf.BusException: No conduit initiator was found for the namespace http://schemas.xmlsoap.org/soap/http. at org.apache.cxf.transport.ConduitInitiatorManagerImpl.getConduitInitiator(ConduitInitiatorManagerImpl.java:112) at org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:73) at org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:61) at org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:708) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:476) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:309) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:261) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:127) 预防措施:此时,我将停止尝试将我的CXF客户端升级到2.4.2,然后再回到最老的版本(2.2系列)。 这不太理想。 我想继续升级。 有关如何配置CXF 2.4.X的任何建议,以便我的客户端HTTP SOAP配置正确连接将非常适合。

用户在SOAP中进行身份validation – 如何操作?

我提出了一个关于JAX-WS,身份validation和授权的问题 – 如何? ; 讨论了安全级别以及存储用户凭据的位置。 现在得出一些结论后,我想尝试其中一种情况: SOAP Web服务 – metro 消息级安全性 – 相互证书身份validation,用于validation客户端应用程序 肥皂头中的用户凭证 如何获取凭据并进行授权? 我有两个想法: JAAS(我对此一无所知); SOAP处理程序 – 使用WebServiceContext从消息中提取凭据并“手动”执行授权。 你能帮我决定最好的方法,以及如何实现它? 请记住,我需要共同证书和用户令牌。

如何使用WebServiceTemplate发送SOAP请求?

我正在尝试向SOAP Web服务发送请求。 我阅读了本教程并准备了以下代码。 但是,我将向多个SOAP Web服务发送不同的请求,而本教程则关注一个请求。 如何使用WebserviceTemplate发送SOAP请求? WebServiceTemplate SoapMessage soapMsg = new SoapMessage(); soapMsg.setUsername(“Requester”); soapMsg.setPassword(“Pass”); soapMsg.setLanguageCode(“EN”); Request request = new Request(); request.setDeparture(“FDH”); request.setDestination(“HAM”); Date date = new Date(); SimpleDateFormat frm2 = new SimpleDateFormat(“yyyy-MM-dd”); request.setDepartureDate(frm2.parse(frm2.format(date))); request.setNumADT(1); request.setNumCHD(0); request.setNumInf(0); request.setCurrencyCode(“EUR”); request.setWaitForResult(true); request.setNearByDepartures(true); request.setNearByDestinations(true); request.setRronly(false); request.setMetaSearch(false); soapMsg.setRequest(request); WebServiceTemplate webServiceTemplate = new WebServiceTemplate(). //how to create object and send request! […]

JAXB解组使用名称空间和前缀

我正在使用JAXB来解析SOAP响应中的xml元素。 我已经为xml元素定义了POJO类。 我已经测试了没有命名空间的pojo类,并且前缀工作正常。但是当我尝试使用命名空间解析并且前缀面向以下exception时。要求解析SOAPMessage对象的输入 javax.xml.bind.UnmarshalException: unexpected element (uri:”http://schemas.xmlsoap.org/soap/envelope/”, local:”Envelope”). Expected elements are 试图通过在package-info.java中为包创建@XMLSchema来修复,并将此文件放在包文件夹中。任何人都可以指导我前进吗? 提到这篇文章,但没有帮助我。 编辑:XMLSchema @javax.xml.bind.annotation.XmlSchema ( xmlns = { @javax.xml.bind.annotation.XmlNs(prefix = “env”, namespaceURI=”http://schemas.xmlsoap.org/soap/envelope/”), @javax.xml.bind.annotation.XmlNs(prefix=”ns3″, namespaceURI=”http://www.xxxx.com/ncp/oomr/dto/”) } ) package com.one.two; 提前致谢