1

我正在开发 java web 服务 (JAX-WS) 以将数据插入 mysql DB 并检索它。该Web 服务有两种方法,即fetchFromDB 和insertIntoDB。当我使用 netbeans IDE 测试服务时,它们似乎运行良好。

Address: /CalculatorWSService
WSDL:    /CalculatorWSService?wsdl

但是当我尝试通过提供 url http://localhost:8080/CalculatorApp/CalculatorWSService使用 AJAX 的 xmlHttpRequest 对象访问它时。它无法访问它。我已经开发了 C# Web 服务,使用 url 访问它们非常容易,但是 java Web 服务似乎没有遵循这一点。

我的问题是

使用什么 url 来访问 AJAX 中的 Web 服务操作?(我需要在 url 中使用 '?wsdl' 吗?是否有 javascript ajax 库可以轻松访问 JAX-WS Web 服务?Apache Axis Web 服务比 JAX-WS 更好?请帮助我,谢谢,Jay

4

2 回答 2

1

从客户的角度来看,我没有预料到 Axis 和 JAX-WS 之间会有显着差异。客户需要的一切都应该在 WSDL 中。

有时会发生的一件事是,在开发 WebService 时使用的 URL 引用了开发主机和端口(甚至可能是 ContextRoot),当部署到特定服务器时,这些中的任何一个都可能被更改。理想情况下,可以使用新的“绑定”信息创建新的 WSDL。

我的第一步是将浏览器直接指向要调用的 Web 服务。在我的环境中返回一个很好的“嗨,这是一个 Web 服务”类型的消息。如果您收到 401 not found 错误,那么您只需要准确研究 Web 服务是如何部署的。是否指定了不同的端口或上下文根?

于 2009-07-31T20:36:16.657 回答
1

我遇到了同样的问题,无法从 Javascript 调用 Jax-ws Web 服务,但我找到了一种方法来做到这一点。

要使用的 Url 可以是相同的(EndPointAddress)http://localhost:8080/CalculatorApp/CalculatorWSService

但是当您从 javascript 创建 XMLHttpRequest 对象时,您必须:

* 使用 POST 方法打开 URL,我尝试使用 GET 但它对我不起作用。
* 将 SOAPAction 请求标头设置为 wsdl 中的标头,即使它为空“”。
* 发送请求正文时要非常小心,soap Envelope 必须正确。

希望这可以帮到你!。

再见。
保罗·曼贾雷斯。

于 2010-05-04T14:28:08.313 回答