【发布时间】:2012-02-07 01:22:27
【问题描述】:
我创建了一个名为TimeServerBean 的简单网络服务。它工作正常,GlassFish 服务器正在运行,我可以从浏览器访问 WSDL 文件。请注意,这是在本地主机上完成的。
接下来,我创建了一个新项目并创建了一个 Web 服务客户端,并提供了 WSDL 文件的 URL。然后我生成了一些类(JAX-WS)。 在我的客户端类中,我有以下代码:
public class SimpleClient {
@WebServiceRef(wsdlLocation = "wsdl url here")
static TimeServerBean_Service service;
private TimeServerBean bean;
public SimpleClient() {
bean = service.getTimeServerBeanPort();
}
//methods here
}
虽然当我调用getTimeServerBeanPort 时我得到了空值。在此期间,服务器已启动并运行。有什么明显的错误吗? TimeServerBean 和 TimeServerBean_Service 是从 WSDL 生成的类。
【问题讨论】:
-
这个方法是返回
null,还是你得到一个NullPointerException? -
我没有看到 try/catch 块。如果您还没有,请添加一个,然后查看异常(我猜您可能会得到异常)。
-
我的半知性猜测是
@WebServiceRef是应用服务器的依赖注入机制寻找的注释,并自动为您实例化TimeServerBean_Service。SimpleClient用在什么样的应用程序中?如果它是一个 Web 应用程序,请考虑从 Glassfish 知道的“Web”对象获取服务对象。如果它是一个独立的应用程序,您必须自己实例化服务对象。希望更熟悉 JAX-WS 的人能更好地回答这个问题。 -
您在哪个容器中运行客户端以及如何创建 SimpleClient 实例?
-
SimpleClient 是使用 wsdl 文件创建的 Web 服务客户端,它位于 netbeans 的 Java 应用程序项目中。我从 GUI 界面创建了它的一个新实例。
标签: java web-services netbeans jax-ws