jax-ws 相关问题

JAX-WS是为基于XML的Web服务定义Java API的JSR 224

JAXWS Socket Factory 设置不起作用

我正在使用 JAXWS 调用 SOAP Web 服务,但 SSL 套接字工厂不起作用。该应用程序不使用我的信任库和密钥库,而是使用 JRE 的默认信任库。 绑定提供者

回答 1 投票 0

为什么 SOAP 服务 (jax-ws) 在 Linux 操作系统上在一段时间后停止并抛出 WebServiceTransportException: Unauthorized [401]]?

我开发了一个肥皂应用程序,并向所需的服务发送请求。问题是一段时间后抛出异常: 堆栈跟踪: Servlet.service() 用于 servlet [

回答 1 投票 0

如何在 Soap Request Java 中设置标头

我在形成 SOAP 请求时遇到问题。 在该请求中,我应该在标头部分而不是有效负载部分中添加用户名、密码和一些其他信息。 在 wsdl 的条目下面 我在形成 SOAP 请求时遇到问题。 在该请求中,我应该在标头部分而不是有效负载部分中添加用户名、密码和其他一些信息。 wsdl 条目下方 <wsdl:message name="InputUploadCustomerDocument_Headers"> <wsdl:part name="DocumentType" element="tns:DocumentType"/> <wsdl:part name="FileName" element="tns:FileName"/> <wsdl:part name="Password" element="tns:Password"/> <wsdl:part name="PinNo" element="tns:PinNo"/> <wsdl:part name="UserName" element="tns:UserName"/> </wsdl:message> <wsdl:message name="ReturnUploadCustomerDocument"> <wsdl:part name="parameters" element="tns:ReturnUploadCustomerDocument"/> </wsdl:message> <wsdl:operation name="UploadCustomerDocument"> <soap:operation soapAction="http://tempuri.org/ISend/UploadCustomerDocument" style="document"/> <wsdl:input name="InputUploadCustomerDocument"> <soap:header message="tns:InputUploadCustomerDocument_Headers" part="DocumentType" use="literal"/> <soap:header message="tns:InputUploadCustomerDocument_Headers" part="FileName" use="literal"/> <soap:header message="tns:InputUploadCustomerDocument_Headers" part="Password" use="literal"/> <soap:header message="tns:InputUploadCustomerDocument_Headers" part="PinNo" use="literal"/> <soap:header message="tns:InputUploadCustomerDocument_Headers" part="UserName" use="literal"/> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="ReturnUploadCustomerDocument"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> 下面的InputUploadCustomerDocument Java文件,该文件没有用户名,密码和其他字段,我需要在reuqest之前设置这些参数 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "fileData" }) @XmlRootElement(name = "InputUploadCustomerDocument") public class InputUploadCustomerDocument { @XmlElement(name = "FileData", required = true) protected byte[] fileData; /** * Gets the value of the fileData property. * * @return * possible object is * byte[] */ public byte[] getFileData() { return fileData; } /** * Sets the value of the fileData property. * * @param value * allowed object is * byte[] */ public void setFileData(byte[] value) { this.fileData = value; } } 这是我需要调用的函数 @WebMethod(operationName = "UploadCustomerDocument", action = "http://tempuri.org/ISend/UploadCustomerDocument") @WebResult(name = "ReturnUploadCustomerDocument", targetNamespace = "http://tempuri.org/", partName = "parameters") @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) public ReturnUploadCustomerDocument uploadCustomerDocument( @WebParam(name = "InputUploadCustomerDocument", targetNamespace = "http://tempuri.org/", partName = "parameters") InputUploadCustomerDocument parameters); 有人可以帮助我如何设置这些标题吗? 您可以使用下面的行在发出请求之前添加标头,因为您使用的是 JAX-WS: SOAPHeader header = envelope.addHeader(); 有很多教程可以参考。转到 google 并搜索消费 SOAP Web 服务。这是一个这样的教程,您可以参考: http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client/ 这是您可以使用的另一个很好的例子: https://soa2world.blogspot.com/2009/05/direct-web-service-client-using-java.html 希望这有帮助。

回答 1 投票 0

使用 jaxws 插件从 WSDL 生成 Java 类,该类将通过 Bindigs 实现公共接口

我有以下类型的 wsdl 文件: .... .... 我有以下类型的 wsdl 文件: <xs:complexType name="someName"> .... </xs:complexType> <xs:complexType name="someOtherName"> .... </xs:complexType> 我想要实现的是让这些类型实现通用接口 public interface Test { //methods that already exist in the types } 为了实现这一点,我创建了绑定文件: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jaxws:bindings xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance" jaxb:extensionBindingPrefixes="xjc inheritance" xmlns:xs="http://www.w3.org/2001/XMLSchema" wsdlLocation="my_wsdl.wsdl"> <enableWrapperStyle>true</enableWrapperStyle> <enableAsyncMapping>false</enableAsyncMapping> <jaxws:bindings node="//xs:complexType[@name='someName']"> <inheritance:implements>com.mycompany.package.Test</inheritance:implements> </jaxws:bindings> </jaxws:bindings> 还配置了插件: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>${jaxws-maven-plugin.version}</version> <dependencies> <dependency> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-basics</artifactId> <version>0.6.4</version> </dependency> </dependencies> <executions> <execution> <id>wsdl</id> <goals> <goal>wsimport</goal> </goals> <configuration> <xjcArgs> <xjcArg>-Xinheritance</xjcArg> <xjcArg>-Xequals</xjcArg> <xjcArg>-XtoString</xjcArg> </xjcArgs> <genJWS>true</genJWS> <bindingDirectory>${basedir}/src/main/resources/soap</bindingDirectory> <bindingFiles> <bindingFile>binding.xjb</bindingFile> </bindingFiles> <xnocompile>true</xnocompile> <xdebug>true</xdebug> <verbose>true</verbose> <wsdlUrls> <wsdlUrl>${project.basedir}/src/main/resources/soap/my_wsdl.wsdl</wsdlUrl> </wsdlUrls> <sourceDestDir>target/generated-sources/soap</sourceDestDir> </configuration> </execution> </executions> <extensions>true</extensions> </plugin> 旗帜 <xjcArg>-Xequals</xjcArg> <xjcArg>-XtoString</xjcArg> 已考虑在内,我生成的类具有以下签名: public class SomeName implements ToString, Equals{...} 但是,即使考虑到 -Xinheritance 选项(在我添加对 jaxb2-basics 的依赖之前,它抱怨未知选项),也不会对代码生成产生任何影响。 绑定中的 XPath 是正确的,并且考虑了绑定 例如,如果代替 <inheritance:implements>com.mycompany.package.Test</inheritance:implements> 我提供: <jaxb:class name="changedName"/> 类将以更改的名称生成,但它们仍然不会实现我想要的接口。 您知道哪里出了问题吗? 我怀疑问题出在绑定文件上,但我无法确定确切的位置。 您可以尝试关注官方存储库中有关继承插件的wiki页面。 据我所知,主要区别是绑定中使用的 jaxws/jaxb 前缀。 您还可以尝试使用 -X -e 选项在 Maven 构建中添加额外的调试,以在类生成期间查看调试输出。 您可以按照此迁移指南了解如何获取最新版本的 jaxb-tools,该工具现已全部合并到同一位置。 如果仍然不起作用,请回来,我会更深入地研究,如果有必要,我会在 jaxb-tools 的 github 存储库中创建一个问题

回答 1 投票 0

如何使用 XML 配置和 JaxWsProxyFactoryBean 增加 Apache CXF 超时?

我正在使用 JAX-WS 的 apache CXF 实现。 我的 Web 服务是使用 JaxWsProxyFactoryBean 通过 spring xml 配置进行配置的: 我正在使用 apache CXF 实现 JAX-WS。 我的 Web 服务是通过 spring xml 配置使用 JaxWsProxyFactoryBean: 进行配置的 <bean id="myWSClient" class="my.package.MyWSClient" factory-bean="clientFactory" factory-method="create" /> <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="my.package.MyWSClient"/> <property name="address" value="http://some.url"/> </bean> 然后我通过以下方式注入它: @Resource(name = "myWSClient") MyWSClient myWSClient; 如何设法增加 MyWSClient 的timeout? 要使用 spring configuration 配置客户端超时,请使用以下命令: <http-conf:conduit name="*.http-conduit"> <http-conf:client ConnectionTimeout="600000" ReceiveTimeout="600000"/> </http-conf:conduit> 在此示例中,响应和连接超时设置为 600 秒。 参考: Apache CXF:客户端 HTTP 传输:高级配置 您可以在 xml 配置中添加属性 javax.xml.ws.client.receiveTimeout。值以毫秒为单位。 300000 毫秒 = 5 分钟 <bean id="serviceServiceFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="pl.service.YourService"/> <property name="address" value="http://address:port/ws/YourService"/> <property name="properties"> <map> <entry key="javax.xml.ws.client.receiveTimeout"><value>300000</value></entry> </map> </property> </bean>

回答 2 投票 0

com.sun.xml.ws:jaxws-rt:pom:2.2.10 的 POM 无效

我在项目构建过程中遇到了奇怪的问题。问题可能归结为对 jaxws-rt 2.2.10 的依赖。主要问题是这个警告停止了对

回答 3 投票 0

使用 JDK 21 构建时 Wsimport 失败

我正在尝试将服务从 Java 8 升级到 JDK 17。我对 Maven 还很陌生。下面是 Maven pom.xml 文件。 com.sun.xml.ws ...

回答 1 投票 0

使用 JAX-WS 从 Web 服务返回自定义对象

问题有点长,但我想提前提供所有信息 我有以下课程: 包test.api.soap.server; 公共类测试类A { 公共测试A级...

回答 1 投票 0

从 Java8 迁移到 Java11 后出现 JAXB SAXParseException

我正在将 Spring Boot 2.7.0 项目从 Java 8 升级到 Java 11。 该项目使用 maven-jaxb2-plugin 从 wsdl 文件生成类。 这是配置 组织。

回答 1 投票 0

Soap 连接在 Java 客户端中超时,但在 SOAPUI 中却没有超时

我使用 wsimport 和给定的 wsdl 创建了一个 SOAP 客户端。我还使用 SoapUI 来测试该服务。使用 SoapUI 没有问题,但是当使用 Java 客户端时,我得到了 java.net.ConnectException:连接...

回答 2 投票 0

Java 11之后wsimport在哪里

我使用 wsimport 和其他 Metro 工具很多年了,但自从 Java 11 中删除了 Java EE 模块后,我找不到这些工具了。 在哪里可以找到 wsimport 可执行文件?

回答 1 投票 0

在 JAX-WS Web 服务中实现 WS-Policy

我正在使用 JAX-WS 用 Java 开发 SOAP Web 服务。我正在使用 Eclipse Juno 和 Weblogic 12c。该 Web 服务正在 EJB 项目中开发。我正在使用自上而下的方法:从 WSDL t...

回答 1 投票 0

在 Spring Boot 3 中使用 JaxWsPortProxyFactoryBean 或等效项?

我正在尝试将 Spring Boot 2.7.5 中使用 org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean 的项目升级到 Spring Boot 3。这是我的 bean 的声明: @豆 公开

回答 2 投票 0

Wildfly 23 服务器 - 简单的 JAX-WS 部署 - 所有访问 WSDL 的尝试都是“禁止”或“未找到”

虽然我对 JAX-WS 并不陌生,(几年前在 Sun Metro JAX-WS RI 中使用过它,但没有出现任何问题)...发生了很多变化,我参与了许多其他涉及 REST 的 Web 服务项目端点,主要是...

回答 1 投票 0

jaxws-maven-plugin LifecycleExecutionException

我的pom.xml的这一部分: org.codehaus.mojo jaxws-maven-插件 <

回答 1 投票 0

如何自定义 JAX-WS RuntimeException 响应?

我正在尝试自定义在到达 WebMethod 之前抛出的 RuntimeException 的错误响应,例如无效的 xml 正文或 JAX-WS 服务的错误方法名称。 我尝试使用手柄...

回答 1 投票 0

spring webservice Invalid NamespaceHandler 问题(jaxws)

我正在用 spring 构建一个网络服务。我可以构建项目并将其部署到 tomcat,但是当服务器启动时,我收到以下错误: 无效的 NamespaceHandler 类 [org.apache.cxf...

回答 2 投票 0

使用 JAX WS 的 POJO https 客户端的简单配置

我正在尝试获得一个与 JAX-WS 一起运行的简单 POJO https 客户端/服务器实现。 服务器端似乎运行良好并且相当简单,但我还没有找到如何配置 Cl...

回答 1 投票 0

maven-cxf-codegen-plugin 使用 Jaxb 绑定为所有生成的类添加继承

我正在使用 Apache CXF 的 cxf-codegen-plugin 将 wsdl 转换为 java 对象。我指定了一个绑定文件来添加额外的 jaxb 处理。我希望所有这些文件都从接口继承(或

回答 2 投票 0

如何通过 NWDS 为 Java NetWeaver 7.5 编写 Web 服务?

我最近开始部分时间在SAP工作。我认为按照 SAP 标准,我们的系统有点旧——我认为它是 ECC6.0。 NetWeaver版本是7.5。我们有 ABAP 和 SAP AS Ja...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.