Tag: webservice client

JAXWS – 如何更改端点地址

我如何dynamic更改我的JAXWS客户端使用的地址? 这个客户端是由wsimport生成的。

内容不允许在Prolog SAXParserException中

我试图调用一个Web服务,但面临一个奇怪的行为。 我们有一个在我的服务器上运行的Web服务,但是代码不对我们开放,所以不能看到墙上发生了什么服务的所有者已经公开了基于Web的testing客户端UI,其在文本框中input并将显示对testing目的的响应。该input框以下述格式input <CONTENT> <CONTENTID></CONTENTID> <DOCUMENTID>DRI2</DOCUMENTID> <LOCALECODE>en_US</LOCALECODE> <LATEST_VERSION>false</LATEST_VERSION> <INCREASEVIEWCOUNT>false</INCREASEVIEWCOUNT> <ACTIVITY_TYPE></ACTIVITY_TYPE> </CONTENT> 它在这个用户界面工作得很好,但是当我试图通过我的Java代码调用这个Web服务时,它获得连接,以及获得服务的授权,但是当我试图调用上述方法,它给了我下面的错误信息 AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXParseException: Content is not allowed in prolog. faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Content is not allowed in prolog. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source) at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at […]

Java Web服务客户端(最佳方式)

我有一个第三方的WSDL,我需要在JAVA中编写代码来为Web服务客户端调用第三方WSDL中的操作。 现在,我使用Axis的WSDL2JAVA工具生成客户端存根,并使用XMLbeans进行数据绑定。 什么是做这个JAVA的最佳方法? 我读过关于SAAJ,看起来会更细粒度的方法吗? 除了使用WSDL2Java工具生成代码之外,还有其他什么方法吗? 也许wsimport在另一个选项。 优缺点都有什么? 有人可以发送有关这些主题的一些很好的教程链接? 在使用WSDL2Java生成代码时,我们需要使用哪些选项? 我最初使用了一些基本的东西。 现在我有这些选项 C:\axis2-1.5.1\bin>wsdl2java -uri mywsdlurl -o client -p somepackage -d xmlbeans -s -t -ssi

使用JDK8的WebService客户端生成错误

我需要在我的项目中使用Web服务。 我使用NetBeans,所以我右键单击我的项目,并试图添加一个新的“Web服务客户端”。 上次我检查,这是创build一个Web服务客户端的方式。 但它导致了一个AssertionError,说: java.lang.AssertionError:org.xml.sax.SAXParseException; systemId:jar:file:/path/to/glassfish/modules/jaxb-osgi.jar!/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; lineNumber:52; 列号:88; schema_reference:无法读取模式文档“ xjc.xsd ”,因为由于accessExternalSchema属性设置的限制,不允许“文件”访问。 NetBeans的默认Java平台是JDK8(甲骨文的正式版本),所以当我改变我的netbeans.conf文件,并使JDK7(从Oracle,以及)作为我的默认,一切工作正常。 所以我认为问题在于JDK8。 这是我的java -version输出: java版本“1.8.0” Java(TM)SE运行时环境(build 1.8.0-b132) Java HotSpot(TM)64位服务器虚拟机(构build25.0-b70,混合模式) 现在,我将JDK7作为默认的Java平台。 如果有办法让JDK8工作,请分享。 提前致谢。

HttpDelete与身体

我试图使用HttpDelete对象来调用Web服务的删除方法。 Web服务的代码parsing消息正文中的JSON。 但是,我无法理解如何将身体添加到HttpDelete对象。 有没有办法做到这一点? 使用HttpPut和HttpPost,我调用setEntity方法并传入我的JSON。 似乎没有任何这样的HttpDelete的方法。 如果没有办法设置一个HttpDelete对象的主体,请把我链接到一个使用超类HttpDelete的资源,以便我可以设置方法(删除)并设置一个主体。 我知道这是不理想的,但在这一点上,我不能改变networking服务。

客户端发送SOAP请求并收到响应

尝试创build一个将SOAP请求发送到Web服务(并获取结果)的C#客户端(将作为Windows服务开发)。 从这个问题我看到了这个代码: protected virtual WebRequest CreateRequest(ISoapMessage soapMessage) { var wr = WebRequest.Create(soapMessage.Uri); wr.ContentType = "text/xml;charset=utf-8"; wr.ContentLength = soapMessage.ContentXml.Length; wr.Headers.Add("SOAPAction", soapMessage.SoapAction); wr.Credentials = soapMessage.Credentials; wr.Method = "POST"; wr.GetRequestStream().Write(Encoding.UTF8.GetBytes(soapMessage.ContentXml), 0, soapMessage.ContentXml.Length); return wr; } public interface ISoapMessage { string Uri { get; } string ContentXml { get; } string SoapAction { get; } ICredentials Credentials { get; […]