草庐IT

java - 在 Java 中使用 SOAP Web 服务最不痛苦的方法是什么

大多数项目,我们似乎都在进行某种SOAP网络服务消费。而每一次,都像是用砖头在脑袋上反复敲打的感觉。例如,我们最终得到:许多我们的开发人员几乎不理解的生成类笨拙的API(尤其是在使用.NET网络服务时)处理我们通常从本地WSDL文件生成的事实(在我们开始开发时远程服务很少存在)在Python中,我使用了Suds(https://fedorahosted.org/suds),它提供了一个非常自然(但显然类型安全性较低)的API。我知道这是在比较苹果和橘子,但必须有一种比生成这么多代码更轻松的调用远程Web服务的方法。我们暂时可能会在Play框架中使用它,尽管如果可能的话我想要一些通用的东

java - Windows 上的 Java SE6 客户端通过 NTLM 进行 HTTP "Negotiate"身份验证

有谁知道在Windows上运行的Java6客户端在访问实现SPNEGO身份验证协议(protocol)的Microsoft服务器时是否能够通过NTLM进行身份验证?我的理解是,在Windows上运行的Java6内置了对SPNEGO的支持,但在无法进行kerberos身份验证的情况下,Java实现似乎不会尝试NTLM身份验证。AuthenticatorSun文档中提供的示例因响应服务器发送WWW-Authenticate:Negotiate的401Unauthorized错误而失败。这里是测试环境的描述:目标服务器:Windows2008R2独立服务器(不属于AD域)使用WCF实现的Mi

java - SOAPExceptionImpl 错误响应 : 404Not Found if i don't do soapMessage. writeTo(System.out);

我正在用java创建一个Soap客户端,但我遇到了一个奇怪的错误。抽象客户端publicabstractclassAbstractSoapClient{privateServerContextcontext;privateStringpath;privatestaticfinalStringWSSE="";privatestaticfinalStringCURL="";privatestaticfinalStringCURL_PASSWORD="";privatestaticfinalStringSECURITY_NODE="";privatestaticfinalStringUSER

java - 嵌入式 Jetty 和 SOAP

我正在尝试运行一个嵌入式Jetty并想公开一个soap网络服务。该项目作为由netbeans生成的WAR加载。Web服务是从WSDL生成的。向嵌入式Jetty添加SOAP支持的最简单方法是什么 最佳答案 axis2Web服务框架可以作为普通的Web应用程序部署到您的嵌入式Jetty实例上。它为您的网络服务的执行提供了一个框架。您可以将此类服务嵌入到Axis2war文件中或单独部署它们。aar文件(特殊的Axis2归档文件格式) 关于java-嵌入式Jetty和SOAP,我们在StackO

java - 什么是用于动态 SOAP 客户端操作的优秀 Java 库?

我一直在寻找用于Java的SOAP客户端库,并且发现了大量基于基于WSDL构建stub和代理类的想法的库。我感兴趣的是允许用户在运行时输入WSDL,解析WSDL,然后允许用户在Web服务上执行操作。有谁知道允许使用此运行时的良好SOAP客户端库?或者有没有一种方法可以使用axis2wsdl2java功能将stub构建到类加载器中并在运行时使用它们? 最佳答案 迟到总比不到好。:)您应该分两步实现:1)解析用户通知的WSDL以检索可用的操作。引用thisquestion了解如何以简单的方式做到这一点。2)创建动态客户端以使用选定的操作

java - BigDecimal 在 soap 消息中有科学记数法

我的网络服务出现了奇怪的问题。我有对象OrderPosition,它有一个价格(xsd:decimalwithfractionDigits=9)。ApacheCXF为我生成代理类,这个字段是BigDecimal。当我想发送大于10000000.00000的值时,soap消息中的此字段已使用科学计数法(例如1.1423E+7)。我如何强制该值未以科学记数法发送。 最佳答案 这是可以做到的一种方法。BigDecimal有一个将输入数字作为字符串的构造函数。这在使用时会在调用其.toString()方法时保留输入格式。例如BigDecim

javax.xml.ws.WebServiceException : java. io.IOException:写入服务器 Tomcat 8 时出错

我们最近将在JRE1.7.0_17/Tomcat7.0.39上运行的JAX-WS网络服务的技术堆栈更新为JRE1.8.0_66/Tomcat8.0.28。Web应用程序在WindowsServer2012上运行。Web服务使用JAX-WS的Metro实现。客户端使用JRE7和内置于JRE中的JAX-WS客户端API在各种Windows版本上运行。网络服务用于将文件从客户端机器上传到网络服务,网络服务将文件保存在文档管理系统中。该实现在Java7/Tomcat7下运行得非常完美,但我们遇到了在Java8/Tomcat8服务器端运行更大负载(2MB或更大)的问题。来自客户端的堆栈跟踪是:1

java - 使用 JAX-WS 构建大型 MTOM/XOP 消息

我对将MTOM/XOP与JAX-WS结合使用有疑问。我正在编写一个发送大量二进制数据的网络服务。客户端请求多个文件,服务器在响应中返回文件。我能够让它正确构建响应,从而正确实现XOP,但我遇到了与内存相关的问题,因为它在发送之前将整个响应存储在内存中。此Web服务发送的文件可能非常大(例如,千兆字节大),因此无法将响应存储在内存中。ThisOraclewebsite(以及thisone)似乎解决了这个问题,但我就是不明白。我认为他们使用DataHandler对象来流式传输请求/响应,但我不知道他们是如何实例化它的。我正在使用wsimport从现有的WSDL生成我的JAX-WS类文件。我

java - IWAB0399E 从 WSDL 生成 Java 时出错 : java. io.IOException:错误:缺少 <soap:fault> 元素 inFault

我有一个供内部使用的WCF4.0服务。另一个团队正尝试在Java中使用它。IWAB0399EErroringeneratingJavafromWSDL:java.io.IOException:ERROR:MissingelementinFault"PasswordReuseFaultFault"...一个消息来源表明它可能是一个Soap1.1vs.Soap1.2issue确实是我的WCF生成了WSDL注意而不是预期的我很确定这就是问题的原因。如何让WCF生成soap1.1WSDL?或我应该告诉Java团队做什么,以便他们的工具能够理解更新的协议(protocol)?编辑:我发现basi

java - 使用 groovy 的 SOAP 请求

我创建了以下groovy程序test.groovy来调用BIPublisherWeb服务。我能够得到SOAPreact。谁能帮我把soapresponse(Envelope.Body.runReportResponse.runReportReturn.reportBytes)写成pdf文件。-----------------------test.groovy------------------------------------Stringusername="Administrator"Stringpassword="Administrator"StringattributeForma