问题标签 [jax-ws-customization]

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 投票
2 回答
1492 浏览

jakarta-ee - 以编程方式获取 JAX-WS WebService 实现的 Servlet 实例?

我正在使用自上而下的方法开发 Web 服务,使用 JAX-WS 的 wsimport 从 WSDL 生成服务类型和接口。这提供了一个如下的端口类型接口,我实现了它。

将此服务添加到应用程序服务器(在我的情况下为 Tomcat)的正常方法似乎是将实现类作为 servlet 添加到 web.xml 并将 WSServletContextListener 添加为侦听器。粗略地说,似乎在初始化上下文时,侦听器构造了 ServletAdapters,它包装了实现 bean 并将它们添加到由瘦 WSServlet 调用的 WSServletDelegate。然后,对您的实现的请求由 WSServlet 处理,并由委托根据您设置的任何 URL 模式传递给您的 bean。

有没有办法以编程方式完成上述操作?我想要一个接受上述接口实例并返回给我一个 Servlet 实例的方法,如果在 ServletContext 中注册,它会将适当的请求路由到包装的实现。就像是:

一项要求是我不能依赖静态配置文件(例如 web.xml 或 sun-jaxws.xml)。JAX-WS 或相关库(即:Axis2 等)是否提供这种功能?

如果有不清楚的地方道歉;这是我第一次来这里:)。任何指针表示赞赏。

目前使用 JAX-WS 2.1、Tomcat 7、Servlet 3.0。

0 投票
1 回答
4276 浏览

jaxb - WSDL 定制:XMLGregorianCalender 到 java.util.Date

我有几个几乎数百个 wsdl 文件。每当我为它们创建客户端 jaxb 客户端类时,Jaxb 会自动将所有日期/时间字段映射到 XMLGregorianCalender。经过大量谷歌搜索,我发现提供单独的绑定文件是唯一的解决方案。

我不想提供 wsdl 位置,因为我有很多,否则我必须为每个 wsdl 创建单独的绑定文件。

下面是我使用的绑定文件。

它创建了具有 Date 类型的 jaxb 类,但它还自动创建了一个名为 Adapter1.java 的适配器,它被放入了我不想要的地方。我有自己的包结构,不能偏离它。

org.w3._2001.xmlschema

并且此适配器将日期从 String 转换为 java.util.Date 并且我的应用程序失败,因为转换器应从 XMLGregorianCalender 转换为 java.util.Date

所以,我自己写了一个适配器

并像这样更改了我的自定义文件:

然后我运行了 wsimport 工具,但它失败了。

我将自定义设置保存在 wsimport 命令中给出的 cust.txt 中,并且我的 DateAdapter 类源文件也在同一目录中。该课程没有包装。以下是我的目录结构。

0 投票
0 回答
299 浏览

java - 在 jasper 报告中将 Web 服务配置为数据源

有人可以为我提供步骤

将 Web 服务配置为 jasper 报告中的数据源

我阅读了有关实施的信息,custom data source但找不到任何详细解释这些步骤的示例。

0 投票
2 回答
11646 浏览

validation - 使用 JAX-WS 进行服务器端模式验证

我有 JAX-WS 无容器服务(通过Endpoint.publish()正确的main()方法发布)。我希望我的服务能够验证输入消息。我尝试了以下注释:@SchemaValidation(handler=MyErrorHandler.class)并实现了一个适当的类。当我启动服务时,我得到以下信息:

我在互联网上找到的解决方案很少,所有这些都暗示使用WebLogic容器。在我的情况下,我不能使用容器,我需要嵌入式服务。我还能使用模式验证吗?

0 投票
2 回答
12579 浏览

java - JAX-WS 客户端:跨多个服务维护会话/cookie

我正在使用 Netbeans 自动创建基于 WSDL 文件的 web 服务客户端。这很好用,除了我使用的 Web 服务要求我将 HTTP 标头中的自定义 cookie 传递给每个 Web 服务以证明我的身份。

我使用一个名为的网络服务Utility来获得我的授权。这会设置一个 cookie,需要在对任何 Web 服务的所有后续调用中提供该 cookie。

这可以通过将 Web 服务端口的 BindingProvider设置javax.xml.ws.session.maintain为来完成。true这对于后续调用Utilityweb 服务中的方法非常有用。问题是这仅维护该单个 Web 服务的会话/cookie。我也需要它。

我需要将 cookie 传递给名为 How can I done this?的单独Web 服务?History拥有一个实用程序和历史都可以扩展并共享相同会话状态的超级服务类是否可行?

0 投票
0 回答
406 浏览

cxf - cxf 中的异步 Web 服务

我需要使用 cxf 从服务器端主动向客户端发送响应。我非常擅长从客户端到服务器进行同步 JAX-WS 调用(我使用 SOPAUI 来调用我的服务器,它是一个 webservice_..我正在关注JAX-WS wsdl 第一种方法。我正在使用 cxf 'wsdltojava' 将 wsdl 转换为 java 类。

为了简单起见,我的问题是'如何在 CXF、JAX-WS wsdl 第一种方法中从服务器向客户端发送响应(没有来自客户端的请求)?

0 投票
1 回答
323 浏览

jaxb - 如何从 XMLAdapter 返回 SOAPFault?

我正在开发一个基于 SOAP 的 WebService (JAX-WS),日期带有特定格式“yyyymmdd”。我的 WSDL 将日期定义为字符串,但我想在预期格式后面没有元素值时返回 SOAP 错误响应。我已经定义了一个XMLAdapterfor 元素并在 unmarshall 方法中尝试了以下操作:

但是异常丢失了,WebService 继续XMLGregorianCalendar为未编组的元素获取空值没有问题。也许这不是实现此格式控制的正确位置...任何帮助将不胜感激。

0 投票
2 回答
10047 浏览

wsimport - 如何让 maven-jaxws-plugin 在从 xsd 生成的类上生成 @XmlElementWrapper?

我正在使用 maven-jaxws-plugin 从我的 wsdl 模式生成 java 类。它不会在生成的类中生成 @XmlElementWrapper 注释。从这篇文章中,我了解到我需要使用 jaxb-xew-plugin,但无法使其与 maven-jaxws-plugin 一起使用。任何帮助,将不胜感激。这是我尝试过的配置

如果它只能与 maven-jaxb2-plugin 集成,你能帮我启动我的网络服务吗?本质上我如何指定 wsdl 以及如何生成服务类?(带有@WebService 注释)

谢谢,

巴迦

0 投票
1 回答
145 浏览

java - 禁用列表的特殊处理JAXB 编组期间的实现者

我有一个@XmlTransient名为ListBase<T>which implements的类List<T>。然后我将该列表子类化为@XmlType StringList,@XmlType PersonList等。

似乎 JAXB 以一种特殊的方式处理此类类,例如当该类的实例是某个其他类的成员时,该成员将被编组为

代替

也就是说,列表的内容被编组而不是列表本身。

该类通过封装ListBase<T>实现List<T>,即它有一个类型字段,List<T>并通过标记为的访问器公开该字段,@XmlElement以便内部列表与该类型一起编组。如果我implements List<T>从我的列表实现者中删除,那么我会得到第二个(所需的)变体,但这意味着修改应用程序的其余部分,以便它知道封装。

如何禁用对我的 List 实现者的特殊处理,以便将其编组为任何其他非集合复杂类型?

0 投票
3 回答
5845 浏览

jaxb - 请求中收到的 JAX-WS 自定义对象为空

我之前使用过 JAX-WS,但之前没有将自定义对象作为参数传递。我正在使用 GlassFish 3.1、NetBeans 7.3 并通过 NetBeans JAX-WS 向导创建服务。我的问题是当传递给服务的自定义对象(标准)在服务器上被接收为 null 时。我可以成功传递像 int 这样的默认类型。

标准.java

有什么我缺少的东西,比如注释之类的吗?

发送的消息如下所示: