问题标签 [jax-rpc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4152 浏览

java - 使用 jboss 使用 Web 服务

有人可以为我指出一个很好的分步教程来使用 Java 中已经运行的 Web 服务吗?

PS:我尝试使用创建类wsconsume,但它哭泣
[ERROR] rpc/encoded wsdls are not supported in JAXWS 2.0. (我的网络服务是 rpc/encoded)

如果我可以完全手动使用 Web 服务(不使用向导),并且了解它是如何工作的,那么我会很高兴。

谢谢!

更新:我发现 rpc web 服务不是使用jbossws, but来使用的jboss-jaxrpc,它实现了 JAX-RPC 规范。我在这里找到了 JAX-RPC 指南,但我仍在寻找其他可以提供帮助的指南。

0 投票
2 回答
1249 浏览

java - JAX-RPC Web 服务中的多态性

我有一个需要返回复杂多态值的 JAX-RPC (Java) Web 服务。更具体地说,类结构是这样的:

我的网络服务有一个返回测验的方法,它当然可能包含问题和部分,其中可能包含问题和其他部分,依此类推。但是,当我生成 WSDL 时,只有 Child 和 Quiz 进入。当我调用 Web 服务时,我得到一个带有正确数量子元素的 Quiz 元素,但它们都是 Child 元素,并且它们都是空的.

除了将 XML 作为字符串返回之外,有没有一种很好的方法来完成这项工作?

在有人问之前,由于我无法控制的情况,我不能使用 JAX-WS。

0 投票
1 回答
9235 浏览

java - JAX-RPC、Spring Web 服务和 UnsupportedOperationCallException

我有一个试图使用 Spring 使用的 JAX-RPC Web 服务。这是我第一次使用 Spring 来使用 Web 服务,所以现在我只是想让它与 JAX-RPC Web 服务集成作为测试。

Web 服务中有几十个操作,但现在我只关心一个。以下是我在 Spring/client 端创建的接口:

这是我的 applicationContext.xml:

使用此配置JaxRpcPortProxyFactoryBean,调用服务返回以下异常:

org.springframework.remoting.RemoteProxyFailureException:无效的 JAX-RPC 调用配置;嵌套异常是操作风格:不支持“rpc”

我从来没有完全理解 RPC 和文档式 Web 服务之间的区别。但是,我相信这个 Web 服务使用的是 RPC 样式 - 所以这个异常让我感到困惑。

其次,我对应该设置哪些属性感到困惑JaxRpcPortProxyFactoryBean

  1. 如果我设置了该wsdlDocumentUrl属性,我最终会收到 HTTP 401 错误,因为此 Web 服务位于 HTTP 基本身份验证之后,并且似乎 Spring 在获取 WSDL 时不使用用户名/密码属性。
  2. 如果我指定一个PortInterface属性(值为CompanyWebServiceInterfacePort),那么我会得到一个不同的异常说明:

    无法为 JAX-RPC 端口初始化服务 [{ http://www.company.com/wdsl }CompanyWebServiceInterfacePort]; 嵌套异常是 WSDL 数据丢失,此操作不可用

换句话说,它告诉我缺少 WSDL——我无法设置它,因为 Spring 不会使用用户名/密码从服务器获取它!

我不确定这是否有任何意义,但本质上我不确定的是:

  1. 对于 JAX-RPC 服务,是否需要设置 PortInterface 属性?这是我应该走的路吗?
  2. 同样,Spring需要我设置wsdlDocumentUrl属性吗?如果是这样,有什么方法可以告诉 Spring 哪个 WSDL 并解决身份验证问题?
0 投票
1 回答
415 浏览

java - 如何为 Web 服务实例分配唯一 ID

我想在肥皂请求到达我的(GlassFish 2)服务器后立即为其分配一个唯一标识符。我想我为此使用了一个处理程序。

但是我在哪里可以存储这样的 ID?我需要它来关联来自多个类的日志行。为此,我需要某种上下文对象。任何人的想法?

0 投票
1 回答
8506 浏览

java - JAX-RPC 处理程序发生异常

我有一些使用 JAX-RPC 构建的 SOAP Web 服务。这些工作正常。但是一旦我添加了一个处理程序,我就会得到一个异常。从 webservices.xml 中删除绑定后,一切都会再次正常运行。

奇怪的是,处理程序本身不包含在异常的堆栈跟踪中。我还注意到,在引发异常之前调用了处理程序的init和方法。getHeaders

使用以下 xml 将处理程序添加到 webservices.xml:

处理程序本身只是一个存根,由 IDE 从接口生成,所以我不会包括整个实现:

这实际上在我的日志记录中生成了三个异常(具有完全相同的时间戳)。由于篇幅关系,我只包括一部分。

有人有解决这个问题的想法吗?

0 投票
1 回答
238 浏览

web-services - 以编程方式获取有关已配置 (webservices.xml) Web 服务处理程序的信息

在 Web 服务中,我在 webservices.xml(用于 IBM 运行时)和 server-config.wsdd(Axis 运行时)中配置为服务器(角色)的 GenericHandler 很少。假设处理程序是 A、B 和 C。

现在,当有入站呼叫时,A、B 和 C 将按预期被调用。

我基本上是在寻找一种方法来了解(以编程方式)为此 Web 服务配置的处理程序的数量,即在这种情况下为 3,以及其他一些处理程序特定的详细信息。

我正在调查通过以下方式获取 HandlerChain:

但我没有hChain包含有关 A、B 或 C 的信息。是的,在这里我可以以编程方式添加处理程序,这些处理程序也被调用,但配置文件中没有已配置处理程序的信息。

有没有办法(以编程方式)获取有关已配置处理程序的详细信息?

感谢您的帮助。

0 投票
8 回答
30703 浏览

java - How to set a connection timeout when using JAXRPC-RI web services client?

I'm working with a bit of a legacy component in which we interact with a SOAP web service (a technology which I absolutely, positively abhor) using some client code built using the JAXRPC-RI (reference implementation) library.

I'm interested in being able to set a timeout with the stubs so that in case the web services server does not reply within X seconds, the application isn't setting there forever waiting for a response.

I'm using to working with clients/stubs generated by Apache Axis, in which you can simply use org.apache.axis.client.Stub.setTimeout() to set a timeout.

For the life of me I can't figure out how to set a timeout when using Stubs created with JAXRPC-RI:

  • The port class I am instantiating extends com.sun.xml.rpc.client.StubBase and implements javax.xml.rpc.Stub and com.sun.xml.rpc.spi.runtime.StubBase.
  • The JavaDocs for none of these classes mention any sort of timeout or method to do this.
  • Trying code like stub._setProperty("axis.connection.timeout", 1000); results in an exception at runtime: javax.xml.rpc.JAXRPCException: Stub does not recognize property: axis.connection.timeout

Does anyone have any ideas on how to set/enforce a timeout when using a JAXRPC-RI client? Is it even possible?

0 投票
3 回答
1384 浏览

java - Java Web 服务客户端:

我正在开发一个 Web 服务客户端,该客户端需要使用axis2 执行在tomcat 上公开的操作。客户端拥有所有需要的 wsdl 文件。我无法使用 netbeans 或 eclipse 静态导入它们,因为客户端需要在运行时发现 wsdl(这已经完成),然后以固定顺序执行它们......我该怎么办?我的程序能够获取那些 wsdl 文件,但我不知道如何处理它们......我应该使用什么:jax-ws?贾克斯-RPC??你能给我一个指南或其他东西的链接吗?

先感谢您

0 投票
3 回答
9240 浏览

java - Java web 服务,xsd 日期而不是 dateTime

在使用 JAX-RPC 1.1 的 Java EE 1.4 中,我如何公开 Web 服务,因此 wsdl 具有复杂类型(人),其中人的属性之一是日期,在 WSDL/XSD 中仅显示为日期(例如生日)而不是 WSDL/XSD 中的 dateTime(不需要时间)?

我希望 wsdl 中引用的 xsd 有

代替

java.util.Calendar 和 java.util.Date 在 wsdl/xsd 中呈现时似乎都导致 xsd 数据类型为 dateTime。

我知道 java EE 1.4 没有像 java EE 5 这样的注释,但是有没有办法告诉 Web 服务使用 xs:date 数据类型?

0 投票
8 回答
23388 浏览

java - Axis2 的 wsdl2java 在 RPC/Encoded 样式 Web 服务上失败

Axis2 有什么替代品吗?或者使其工作的方式(例如,不同的数据绑定)?

注意:Apache CXF 也失败了 :(