java - 无法从 Groovy 调用 Web 服务

标签 java web-services soap groovy

我正在查看新的 Java Web Services: Up and Running 中的第一个示例书。我尝试查看第 13 页上的 Java SOAP 客户端示例,但使用的是 Groovy。

这是我的 Groovy shell 代码:

import javax.xml.namespace.QName
import javax.xml.ws.Service
import java.net.URL

url = new URL("http://someURL?wsdl")
qname = new QName("http://someURL", "SomeURLImplService")
service = Service.create(url, qname)

但是失败并出现以下错误:

ERROR groovy.lang.MissingMethodException: No signature of method: \
static javax.xml.ws.Service.create() is applicable for argument types: \
(java.net.URL, javax.xml.namespace.QName) values: {http://someURL?wsdl, \
{http://someURL}SomeURLImplService}

我不明白这一点,因为 Groovy 告诉我这个具有该签名的方法确实存在:

groovy:000> Service.class.getMethods().each {println it}
public static javax.xml.ws.Service \
javax.xml.ws.Service.create(java.net.URL,javax.xml.namespace.QName)
...

有人知道我在这里做错了什么吗?

最佳答案

我尝试在不做任何修改的情况下运行你的代码,它对我来说工作得很好。您的问题可能与 Java 版本或类路径有关。 javax.xml.ws (JAX-WS) 只是从 Java 6 开始的 Java SE 的一部分。如果您没有在 Java 6 中运行此测试,那可能是您的问题。这可能不是您的问题,因为如果您不是,我不希望您能够解决这些接口(interface)。

另一件事可能是类路径问题。外部 JAX-WS 提供程序可以插入到 Java 运行时中。您的类路径上是否有 JAX-WS 提供程序的内容?也许这是一个早期版本。

关于java - 无法从 Groovy 调用 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/578003/

相关文章:

javascript - 为 TFS SOAP web 服务构建 javascript 客户端

java - 扩展类的调用函数

java - 如何使用正则表达式替换部分字符串

asp.net - 保护 Web 服务

.net - 列出<客户> 全部或全部

java - Spring Boot Web 服务指标监控

java - 快速单击按钮后无法关闭 DialogFragment (Android)

java - 为什么我应该使用 JMS 而不是 RMI+Queue?

java - Tomcat 不允许我使用 Jersey (Jax-RS) 发送@POST 请求

xml - 为什么 SOAP 消息不使用标准的 XML 验证工具进行验证?