Tag: soap

如何从Tomcat Java应用程序捕获SOAP消息到外部服务器?

我有一个Web应用程序,它在Tomcat6中运行,并通过HTTPS将SOAP消息发送到某个外部系统。 我想拦截这些消息。 为了做到这一点,我在工具 – >提琴手选项对话框中启用了HTTPS捕获。 在我重新启动Fiddler后,我可以看到对多个主机(如Google,Evernote)的HTTPS请求,但不会看到我的Java应用程序与之对话的外部系统。 然后,我将JVM选项-Dhtttps.proxyHost=ipv4.fiddler -Dhttps.proxyPort=80到我的启动配置并重新启动应用程序。 同样,Fiddler没有捕获任何SOAP请求。 我可以做些什么来查看SOAP消息(使用Fiddler或其他工具)? 更新1(22.10.2013 12:35 MSK):当我将JVM参数更改为-Dhttps.proxyHost=ipv4.fiddler -Dhttps.proxyPort=80 -DproxySet=true -DproxyHost=ipv4.fiddler -DproxyPort=80我得到了exceptioncom.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.UnknownHostException: ipv4.fiddler发送请求时的com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.UnknownHostException: ipv4.fiddler 。

java.lang.IllegalStateException:没有注册unmarshaller。 检查WebServiceTemplate的配置

当我向服务器发送SOAP请求时,它返回以下错误。 我不确定如何配置unmarshaller,我将向多个web服务发送SOAP请求。 WSDL就在这里 。 我访问了以下页面但尚未找到解决方案。 1,2,3 java.lang.IllegalStateException: No unmarshaller registered. Check configuration of WebServiceTemplate. at org.springframework.ws.client.core.WebServiceTemplate$3.extractData(WebServiceTemplate.java:406) at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:598) at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:539) at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:386) 码 SearchFlights @XmlRootElement(name = “SearchFlights”) @XmlAccessorType(XmlAccessType.FIELD) public class SearchFlights { @XmlElement(name = “SoapMessage”) private SoapMessage soapMessage; getter and setter 的SOAPMessage @XmlRootElement(name = “SoapMessage”) @XmlAccessorType(XmlAccessType.FIELD) public class SoapMessage { @XmlElement(name = “Username”) private String […]

Java:HTTP连接创建的等待连接线程持续很长时间

我有一个服务器端代码,用于检查SOAP服务是否已启动。 代码如下: String response = “”; while (response.length() == 0) { try { final URL url = new URL(“DummySoapServiceURL”); final HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection(); InputStream inputStream = null; try { httpConnection.setRequestMethod(“GET”); inputStream = httpConnection.getInputStream(); final byte[] buffer = new byte[BUFFER_SIZE]; while (inputStream.read(buffer, 0, BUFFER_SIZE) != -1) { response = new String(buffer); } } finally […]

Java webservice(soap)客户端 – 使用证书

我正在尝试使用客户端证书通过ssl连接到Web服务。 除了将诸如“javax.net.ssl.keyStore”之类的东西推入System.properties之外,还有一种优雅的方法吗? 任何指向代码示例的指针都将受到赞赏。

OTRS:使用wsdl生成Java SEI时出错

Windows 7,Java 7 OTRS appliannce。 我正在尝试使用wsimport生成带有wsdl文件的Java SEI,该文件来自https://raw.githubusercontent.com/OTRS/otrs/master/development/webservices/GenericTicketConnectorSOAP.wsdl 我尝试从命令提示符(以管理员身份运行)并且它给了我错误(参见附件)并且没有生成任何内容。 我也试过使用Netbeans 8.我选择从wsdl文件创建Web服务,它抱怨无法找到服务或端口。 然后我validation了wsdl文件,它找不到这个元素的声明,xmlns:tns =“http://www.otrs.org/TicketConnector/”> 我怎么能生成SEI与Jav​​a中的OTRS交谈? 谢谢。

Jax-Ws解组错误

我遇到了Jax-Ws的问题,并且在网上搜索了一天之后我发现没有可行的解决方案。 我在当地的jboss eap7上运行我的Soap Ws。 我的wsdl的相关片段如下所示: 我的webservice看起来像这样: @WebService(name = “TravelTrackerWS”) public interface TravelTrackerWSLocal { @WebMethod(operationName = “fillSimpleTravelingDays”) public WsAnswer fillSimpleAndTravelingDays( @XmlElement(required = true, nillable = false) @WebParam(name = “SimpleAndTravelingDays”) List days) throws InsufficientRightsException; } 如果我这样做的请求: Z0030UDK 2014-10-31 AU a 我得到一个Unmarshalling错误,这是正确的,因为’a’是一个字符串而不是长。 soap:Client Unmarshalling Error: For input string: “a” 我现在的问题是。 如何捕获Unmarshalling错误,以便我可以抛出一般错误消息而不是解组错误。 我希望有人能帮助我

从Logger中过滤掉不需要的INFO消息

我正在使用java.util.logging登录我的Java应用程序。 我还使用javax.xml.ws.Endpoint发布SOAP接口。 随着时间的推移,我添加了越来越多的exception,这些exception在启动时都会出现如下日志条目: Jan 24, 2011 12:29:27 PM com.sun.xml.internal.ws.model.RuntimeModeler getExceptionBeanClass INFO: Dynamically creating exception bean Class de.wi08e.myhome.frontend.jaxws.NotLoggedInBean 我尝试使用filter来阻止它们,但我不确定使用getLogger获取哪个类: /* Filter ExceptionBeanClass logs */ Logger loggerInfo = Logger.getLogger(“javax.xml.ws.Endpoint”); loggerInfo.setFilter(new Filter() { @Override public boolean isLoggable(LogRecord l) { System.out.println(l.getMessage()); if (l.getMessage().startsWith(“Dynamically creating exception bean Class”)) return false; return true; } }); 有谁知道如何找出哪个类创建此日志条目? 有没有其他方法可以过滤掉这些紧张的信息? 编辑:我也尝试过Logger.getLogger(“com.sun.xml.internal.ws.model.RuntimeModeler”) ,但它仍然没有工作……

如何在Java中调用WSDL URL上的Web服务?

我需要在我正在构建的java Web应用程序中调用一些Web服务方法。 例如,每次用户注册时,我都希望通过Java在WSDL URL上调用newUser方法。 我需要传递一些带有请求的参数。 是否有任何内置的Java类或任何公开可用的类,这可以使这很容易,即我只提供URL和参数,它执行请求并返回响应? 如果没有,在Java应用程序中调用WSDL上的Web服务的标准方法是什么?

SoapFaultexception:从PHP访问Java Web服务时不支持的媒体类型

我正在尝试使用Zend Framework v1.9.0中的Zend_Soap_Client连接到Java Web服务: ‘UTF-8’)); try{ $result = $client->find_customer(array(‘username’ => ‘user’, ‘password’ => ‘123’), array(‘city’ => ‘some city’)); } catch(Exception $e){ echo $e; } echo ” . $client->getLastRequestHeaders() . ‘ ‘; ?> 输出: SoapFault exception: [HTTP] Unsupported Media Type in /Library/ZendFramework-1.9.0/library/Zend/Soap/Client.php:937 Stack trace: #0 [internal function]: SoapClient->__doRequest(‘_doRequest(Object(Zend_Soap_Client_Common), ‘__doRequest(‘__soapCall(‘find_customer’, Array, NULL, NULL, Array) #6 [internal function]: […]

在CXF +简单前端+ Aegis数据绑定中,SOAP响应错误地反序列化为null

我正在为SOAP Web服务编写客户端。 我正在使用CXF库。 随着简单的前端。 和宙斯盾数据绑定。 服务器为Web方法提供Java接口(名为MediaService),然后在客户端项目中导入该接口。 然后,我使用MediaService.aegis.xml文件来提供方法参数的名称(在序列化请求时不要命名它们)。 这是我在客户端上使用的代码: ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); factory.setDataBinding(new AegisDatabinding()); factory.setServiceClass(MediaService.class); factory.setAddress(urlMediaServer); MediaService service = (MediaService) factory.create(); final List listeReferences = service.sendMedia(bu, media); 服务接口是这样的: public interface MediaService { public List sendMedia(String bu, Media media) throws Exception; } 我已启用XML流日志记录,以便查看发送到服务器的XML流及其返回的流。 以下是流: 请求: sc_phx TEST_CODE test.png 响应: standard photo standard photo 该服务被调用,它回复并且客户端收到正确的回复。 但是在客户端中,进行Web […]