Tag: jax ws

JAX-WS Soap错误没有出现在WSDL中

我正在使用JAX-WS创建一个Web服务(我使用Java到WSDL方法创建它)。 我无法按照我的要求让我的例外工作。 我创建了以下exception类: @WebFault public class MyWebServiceException extends SOAPFaultException { private static final long serialVersionUID = 8234753208722614057L; protected MyWebServiceException(SOAPFault fault) { super(fault); } protected MyWebServiceException(SOAPFault fault, Throwable throwable) { this(fault); super.setStackTrace(throwable.getStackTrace()); } } 这允许我在SOAP响应中包含以下内容: E0010 Invalid Report Invalid Report 但是,因为我的exception是扩展RuntimeException的SOAPFaultException ,所以它没有被添加到WSDL中,因此当服务的用户生成其客户端存根时,不包括exception。 有谁知道如何创建此exception以给我预期的输出(即包括faultcode和faultstring),但也出现在WSDL中(我想它需要是一个经过检查的exception) 我搜索了高低,想出了我已经拥有的东西!

使用JAX-WS 2.2.5客户端和JDK / JRE 1.5

Java 6随JAX-WS 2.0一起提供。 据我所知,Java 5没有附带JAX-WS。 我能够使用JAX-WS 2.2.5与Java 1.6一起使用Java Endorsed Override Mechansim创建Webservice客户端存根,它将JAX-WS列为可以在Java 6中替换的组件之一。 我所要做的就是在JDK和JRE 6路径中创建一个lib \ endorsed目录,然后将jaxb-api.jar和jaxws-api.jar从JAX-WS 2.2.5复制到名为endorsed的目录中。 JDK和JRE 6都自动选择了2.2.5 JAX-WS。 我在Java 5文档中找不到类似的Java Endorsed Override Mechanism。 我怎么在这里找到一个。 这并没有像Java 6文档那样提及JAX-WS,但它也提到了认可的dirs。 我在JDK和JRE lib目录中创建了一个类似的’endorsed’目录。 我将JAX-WS 2.2.5中的所有jar子(共23个jar子)复制到了背书目录中。 但是,与Java 6不同,javac.exe和java.exe都没有直接选择它。 我不得不使用此命令行参数运行java.exe和javac.exe -Djava.endorsed.dirs=\lib\endorsed 一切似乎工作正常,但我想知道这是否可以保证工作 – 任何人以前遇到的任何问题? JAX-WS 2.2.5是否支持Java 5?

WSDL中的参数名称具有重要名称

我正在使用JAXWS RI在Java中创建WebService。 自动部署应用程序WAR时会创建WSDL文件。 问题是我希望WSDL文件中的参数(每个操作都收到)具有重要的名称,但它们显示为arg0,arg1,arg2 …有没有办法定义这些参数的名称而不是使用默认名称? 我已经实现了以下内容: WebService接口 @WebService @SOAPBinding(style = Style.RPC) public interface WS2 { @WebMethod String confirmaXML(String lrt_id); } WebService接口实现 @WebService(endpointInterface = “vital.tde.ws2.WS2”) public class WS2Imp implements WS2{ public String confirmaXML(String lrt_id) { String respuesta = null; //CODE return respuesta; } 太阳jaxws.xml web.xml中 WS2 com.sun.xml.ws.transport.http.servlet.WSServletContextListener WS2 com.sun.xml.ws.transport.http.servlet.WSServlet 1 WS2 /WS2 120

运行时期间使用Metro / JAX-WS / WSIT的WSDL请求

在运行时,JAX-WS获取SOAP端点的WSDL,即使它已经在IDE中运行了wsimport。 此行为如下所示: http : //jax-ws.java.net/faq/index.html#wsdl_at_runtime 客户端在运行时可以检索的元数据量是否有限制? 如果是这样,有没有办法增加这个限制? 请注意,我不是指在IDE中运行wsimport; 工作正常。 我特别谈到在运行时获取WSDL元数据。

为什么wsimport在使用@XmlRootElement注释的服务器对象时遇到问题?

我正在服务器端使用JAX-WS完成Web服务的工作。 在许多域对象中,我使用@XmlRootElement来帮助促进使用JAXB将XML文件解组到服务中。 一切顺利,输出就是我期望看到的使用SoapUI。 但是,当我使用wsimport创建客户端时(作为其他开发人员的便利DAO),我开始在客户端集成测试类中遇到NullPointerExceptions。 对Web服务的调用工作正常,客户端收到响应,但我的更复杂的对象为空。 简单的属性,如字符串,返回了大量可用数据,但不是更大的对象。 通过使用简单的字符串重新创建服务并迁移到更复杂的对象的迭代,我发现当客户端收到使用@XmlRootElement在服务器上@XmlRootElement的对象时,这些是null的对象。 如果服务器对象没有@XmlRootElement注释,则客户端会收到所有复杂荣耀中的所有数据。 最初缺少@XmlRootElement让我适合解组服务器上的数据,但这个答案帮助了我。 因此,由于@XmlRootElement注释(在服务器上!),wsimport客户端因为解组Web服务响应而无声地失败的现象让我担心。 在这种情况下,我控制了双方,并可以做些什么。 但是,如果我无法控制服务器怎么办? 我将如何使用wsimport生成的代码解决这个问题?

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

如何用JAXB编组注释为@XmlAttachmentRef的DataHandler?

我正在尝试使用JAXB(2.1.12)编组一个具有DataHandler字段的对象。 对于流支持, DataHandler使用@ XmlAttachmentRef注释。 通过Web服务进行序列化和流式处理(JBoss上的Metro)工作正常,但是使用JAXB进行简单的编组却没有。 这是一个精简的例子: public class DataHandlerAttachmentSerialization { @XmlRootElement static class RootObject { @XmlElement @XmlAttachmentRef // Works without this, but required for streaming DataHandler dataHandler = new DataHandler( new com.sun.xml.ws.util.ByteArrayDataSource( ” “.getBytes(), “application/octet-stream”)); } @Test public void test() throws JAXBException { JAXBContext context = JAXBContext.newInstance(RootObject.class); Marshaller marshaller = context.createMarshaller(); StringWriter writer = new […]

通过客户端存根访问WSDL时Java InaccessibleWSDLException

我正在尝试为Exchange Web服务编写自定义Java客户端。 我已经使用wsimport工具生成了客户端存根,如EWS的Services.wsdl文件中所述。 现在我编写了使用这些存根的代码。 我得到以下exception: Exception in thread “main” com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException. java.io.IOException: Got Server returned HTTP response code: 401 for URL: https://host.domain.com/ews/Services.wsdl while opening stream from https://host.domain.com/ews/Services.wsdl java.io.IOException: Got Server returned HTTP response code: 401 for URL: https://host.domain.com/ews/Services.wsdl?wsdl while opening stream from https://host.domain.com/ews/Services.wsdl?wsdl at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(Unknown Source) at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source) at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source) […]

SOAP主体包含UTF-8 BOM时的JAX-WS错误

我使用部署在WebLogic 10.3上的JAX-WS(v2.1.3 – Sun JDK 1.6.0_05)开发了一个Web服务,当我使用Java客户端或SoapUI或其他Web服务测试工具时,它可以正常工作。 我需要使用2005 Microsoft SQL Server Reporting Services来使用此服务,我收到以下错误 由于exception而无法创建SOAP消息:XML reader错误:意外的字符内容 SEVERE: Couldn’t create SOAP message due to exception: XML reader error: unexpected character content: “?” com.sun.xml.ws.protocol.soap.MessageCreationException: Couldn’t create SOAP message due to exception: XML reader error: unexpected character content: “?” at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:292) at com.sun.xml.ws.transport.http.HttpAdapter.decodePacket(HttpAdapter.java:276) at com.sun.xml.ws.transport.http.HttpAdapter.access$500(HttpAdapter.java:93) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:432) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244) at […]