Tag: web services

获取SoapBody元素值

这是我从服务器获得的响应,虽然我可以获取MM7Version元素值,但我无法获取Status元素值。 它返回null。 SoapMeesage XML响应: TID.BIP_TRASNID.20041103.135200.001 5.6.0 2602Invalid status Java代码: SOAPMessage response = connection.call(message, endpoint); SOAPEnvelope env= response.getSOAPPart().getEnvelope(); SOAPBody sb = env.getBody(); Name ElName = env.createName(“Status”); //Get child elements with the name XElement Iterator it = sb.getChildElements(ElName); //Get the first matched child element. //We know there is only one. SOAPBodyElement sbe = (SOAPBodyElement) it.next(); //Get the […]

生成的WSDL中的空soapAction

我正在尝试使用JAX-WS从我的Java代码生成WSDL。 一切似乎都运行正常,除了我在WSDL中的操作,soapAction仍然是空的。 这是我的代码: @WebService public class MyClass { public MyStuff queryStuff(String myParam) { return null; } } 生成的WSDL包含: 我不知道我做错了什么。 有任何想法吗?

WebService在WebLogic 10.3中不“可见”

我目前正在尝试让我的应用程序提供Web服务。 该应用程序使用spring并在Weblogic 10.3实例下运行。 我按照“合同优先”的方法构建了web服务。 所以我基本上有一个生成的WS-Interface,我对该接口的实现,定义servlet绑定的web.xml和定义端点的sun-jaxws.xml。 (或多或少类似于此: http : //www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/ )。 现在,在将我的应用程序部署到weblogic后,实际上一切都很好。 我可以在我的浏览器中键入WebService的URL,我看到了WSDL,我可以调用它的方法。 如果这不是一个小的化妆品事实:在WL的部署概述中,当我点击部署时,它会显示一个WebServices列表…它是空的。 所以我的网络服务没有列在那里。 那么,任何人都可以告诉我,我必须做些什么才能让网络服务出现在那里?

HashMap通过SOAP从Java到PHP再返回

我面临一个小问题,无法找到解决方案。 情况: 我有一个包含不同方法的Java-Webservice。 其中一个创建了一个新的Object(名为“Bestellung”,德语为“Order”)。 该对象包含一些属性,其中大多数是字符串,一个是名为“applikationsDaten”(应用程序数据)的Hashmap。 我通过SoapClient在php中收到这个对象 – 所有属性都按我想要的方式填充。 print_r()显示以下内容(缩写为相关部分): stdClass对象( [enthMWsT] => 0 [preisStreckeGesamt] => 28.6 [waehrung] =>欧元 [applikationsDaten] => stdClass对象( [entry] =>数组( [0] =>数组([key] => test [value] => 1) [1] =>数组([key] => fahrDrucken [value] => 1) [2] =>数组([key] => fahrLfdnr [value] => 0) ) ) 在操作一些属性(但不是应用程序数据)后,我正在尝试将该对象发送回我的webservice,这应该检查一些事情并将Order保存到数据库。 这就是问题出现的地方:所有属性都被完美地接收,但应用程序数据却没有。 当我尝试System.out.print()时,我得到以下内容: [STDOUT] {[key:null] = [value:null],[key:null] = [value:null],[key:null] […]

发生exception时如何正常关闭端点?

我写了一个小的JAX-WS Web服务,我在一个容器外面运行Endpoint.publish() : Endpoint endpoint = Endpoint.create(new MyServiceImpl()); endpoint.publish(“http://localhost:4425/myService”); 如果我的任何Web服务方法抛出exception,则端点不会正常关闭,并且该地址将保持使用状态,直到Windows最终释放它。 这会导致经典错误: com.sun.xml.internal.ws.server.ServerRtException:服务器运行时错误:java.net.BindException:已在使用的地址:bind 我可以使用try / catch包装所有的Web服务方法,但这似乎有点重复。 我还尝试通过Thread.setDefaultUncaughtExceptionHandler()安装一个清理类,但是当我的Web服务方法引发exception时,没有触发此类。 有没有更优雅的解决方法,而不是诉诸无数的try / catch块? 根据Waldheinz的回答,我试图使用Jetty类来支持JDK默认值。 代码编译,但执行后,它会在publish后立即终止。 使用JDK类时,主线程将保持活动状态,直到我手动终止该进程。 有什么想法会有什么不妥? 我想知道是否有exception发生在某处,但被吞没,所以我看不到它。 Endpoint endpoint = Endpoint.create(new MyServiceImpl()); Server s = new Server(new InetSocketAddress(HOST, PORT)); ServerConnector connector = new ServerConnector(s); connector.setReuseAddress(true); s.setConnectors(new Connector[] { connector }); s.setHandler(new ContextHandlerCollection()); JettyHttpServer server = new JettyHttpServer(s, false); […]

在java webapp / client中管理Web服务/ xml绑定的生成工件的最佳方法?

我正在研究一些使用JAXB绑定消息的Web服务(在JAX-WS或spring-ws中)。 使用这些绑定时,总会有一些代码从WSDL自动生成以绑定消息对象。 我正在努力找出能够完成这项工作的最佳方法,以便它易于使用,难以破解并与IDE很好地集成(主要使用eclipse)。 我认为有几种方法可以解决这个问题。 我现在看到的三个主要选项是: 生成代码,保留源工件并将其检入存储库。 优点:与IDE轻松集成(源代码突出显示等),在构建系统中工作。 缺点:每次重新生成时生成的代码都会更改,可能会创建嘈杂的提交。 它也是多余的,因为WSDL文件通常已经签入。 生成代码作为构建过程的一部分。 不要保留源工件或仅将它们保存在输出目录中。 优点:修复前一个缺点。 缺点:难以与IDE集成,但是这个构建步骤是否可以自动运行? 我目前在我的一个项目上使用它,但是第一次检查项目时它看起来很破碎,这是一个小麻烦。 将生成的绑定保存在maven或手动更新的jar中包含的单独库(jar)中,具体取决于您的构建过程。 我从java.net上的一个post中得到了这个想法。 这似乎更稳定,并使用显式版本,但似乎有点重量级。 您将实施哪些选项以及如何实施? 我们目前正在使用maven和eclipse,所以在这方面的任何想法都会很棒。 我认为这个问题可以概括为大多数其他构建系统和IDE组合,甚至可能是其他语言。

CXF 2.7.7 org.apache.cxf.interceptor.Fault:意外的元素

我遇到了自升级到CXF 2.7.7后无法理解的错误。 在进行Web服务调用时,CXF会报告此exception: org.apache.cxf.interceptor.Fault: Unexpected element {http://schema.myorg.com/GetReference/}ReferenceResponse found. Expected {http://services.myorg.com/}getReferences 这没有任何意义,因为ReferenceResponse正是我期望的响应。 getReferences这个名称似乎是指被调用的@WebMethod注释方法的名称。 此方法的返回类型是ReferenceResponse。 我错过了什么?

使用HttpURLConnection在Request body中发送数据

我正在使用HttpURLConnection向使用JAVA Spark创建的本地部署的本地服务发出POST请求。 当我使用HttpURLConnection进行POST调用时,我想在请求体中发送一些数据,但每次JAVA Spark中的请求体都为null 。 以下是我正在使用的代码 Java Spark POST服务处理程序 post(“/”, (req, res) -> { System.out.println(“Request Body: ” + req.body()); return “Hello!!!!”; }); HTTPClass进行发布呼叫 `public class HTTPClassExample{ public static void main(String[] args) { try{ URL url = new URL(“http://localhost:4567/”); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); httpCon.setRequestMethod(“POST”); httpCon.connect(); OutputStream os = httpCon.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os, […]

使用Jax生成代理Web服务客户端时出错

我想知道我是否可以得到以下问题的一些帮助。 我试图使用jax运行以下命令来生成Web服务客户端代理: wsimport http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL 但我收到以下错误: Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\Asher>wsimport http://www.holidaywebservice.com/Holidays/HolidayService.asmx?WSDL parsing WSDL… [WARNING] src-resolve.4.2: Error resolving component ‘s:schema’. It was detected that ‘s:schema’ is in namespace ‘http:/ /www.w3.org/2001/XMLSchema’, but components from this namespace are not referenceable from schema document ‘http://www.h olidaywebservice.com/Holidays/HolidayService.asmx?WSDL#types?schema1’. If this is the incorrect […]

Java Web Service是否可以托管而无需在Tomcat / JBoss等服务器上部署它?

据我所知,需要Apache Tomcat或像JBoss这样的App服务器来部署和运行用java实现的Web服务。 我的经理问我,在没有配置或设置Apache Tomcat / JBoss的情况下,没有任何替代方案可以部署Web服务。 我基本上是一名QA工程师,拥有一些最小的Java编程经验。 我们正在尝试开发/实现基于Java的Web服务,用于生成SMTP消息,可以使用不同技术(QTP,Perl等)开发的测试脚本调用它们。 谢谢你的时间。