Tag: jax ws

生成的WSDL中的空soapAction

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

发生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); […]

使用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 […]

在jax-ws webservice中generics类会发生什么?

我想知道我是否在jax-ws中使用了generics方法,例如: public List getSomething() jax-ws支持这个吗? 在客户端,该方法的返回方式是什么样的?

java.lang.NoClassDefFoundError:无法初始化类com.sun.xml.internal.ws.fault.SOAPFaultBuilder

我正在使用JBoss 4和Java 6u29。 我使用wsimport为soap webservice生成了一些类。 除了一件事,一切都很好。 每当webservice以soap错误响应时,我都会遇到以下exception: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder 该课程包含在JRE中。 我不知道为什么找不到这个课程。 我在谷歌搜索但没有成功。 你知道什么可能导致这个错误吗?

使用CXF时,SoapAction标头丢失

我有一个来自外部WS的WSDL文件,我正在连接到该文件。 我正在尝试使用CXF(适用于JAX-WS)。 但我从其他系统得到错误。 所以我决定看一下我们发送到该系统的数据,唯一不同的是CXF设置了空的SOAPAction http头。 我进行了一些阅读,看起来只有已知的解决方案直接指向WSDL。 但我已经这样做了。 有人对此有所了解吗? 头: POST /somepath HTTP/1.1 Content-Type: text/xml; charset=UTF-8 Accept: */* Authorization: Basic SOAPAction: “” User-Agent: Apache CXF 2.7.6 Cache-Control: no-cache Pragma: no-cache Host: somehost:8080 Connection: keep-alive Content-Length: 2791

EntityManager.flush()在Java Web服务中提交事务

编辑 : 谢谢大家的答案,但问题出在我的数据源配置,实际上是在自动提交模式。 请参阅下面的答案了解详情。 EntityManager.flush()方法的Javadoc和在Google中搜索它似乎都表明flush方法只将挂起的语句发送到数据库并且不提交事务。 但是我创建的一个简单的测试Web服务(在Java 7中,Oracle 11gR2,JBoss 7.1和Web服务被打包为jar文件)似乎表明不是这样的: 这是表创建脚本: CREATE TABLE test( id INTEGER NOT NULL, name VARCHAR2(20), CONSTRAINT test_pk PRIMARY KEY (“ID”) ); CREATE SEQUENCE test_seq; 这是相应的实体: @Entity @Table(name = “TEST”) public class Test implements Serializable { private static final long serialVersionUID = 9192814682033048425L; @Id @Column(name = “ID”) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = […]

来自Webservice的JAXB类编组错误

我有一些wsimport生成的JAXB类 wsimport -d src/main/java -keep -extension -p my.package http://www.OpenLigaDB.de/Webservices/Sportsdata.asmx?WSDL 我将演示这个类的问题(我自己只添加了@XmlRootElement): package my.package; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = “Sport”, propOrder = {“sportsID”,”sportsName”}) @XmlRootElement(name = “sport”) //Added by myself public class Sport { protected int sportsID; protected String sportsName; public int getSportsID() {return sportsID;} public void setSportsID(int value) {this.sportsID = value;} […]

来自Javascript的SOAP Web服务调用

我正在努力成功地从网页上调用SOAP Web服务。 Web服务是使用JAX-WS的Java Web服务。 这是我试图调用的Web方法: @WebMethod public String sayHi(@WebParam(name=”name”) String name) { System.out.println(“Hello “+name+”!”); return “Hello “+name+”!”; } 我尝试使用JQuery库jqSOAPClient( http://plugins.jquery.com/project/jqSOAPClient )进行Web服务调用。 这是我用过的代码: var processResponse = function(respObj) { alert(“Response received: “+respObj); }; SOAPClient.Proxy = url; var body = new SOAPObject(“sayHi”); body.ns = ns; body.appendChild(new SOAPObject(“name”).val(“Bernhard”)); var sr = new SOAPRequest(ns+”sayHi”,body); SOAPClient.SendRequest(sr,processResponse); 似乎没有回应。 在jqSOAPClient.js我记录了xData.responseXML数据成员,我得到’undefined’。 在Web服务中,我看到警告 2011年3月24日上午10:49:51 com.sun.xml.ws.transport.http.server.WSHttpHandler […]

JAXB使用JAX-WS绑定生成可序列化的类

拥有JAXB-RI和CXF。 WSDL首先。 我想要一个生成的类来实现Serializable 。 我现在有以下绑定xml,它工作(SEI类名称被更改) 不,在这种情况下,我应该添加的位置和内容。 我试过了: 和 标记内部和外部 – 未添加Serializable ,或者根本不生成类(没有任何错误)。 另见这个主题 那么,究竟如何做到这一点