gpt4 book ai didi

java - 如何在客户端应用程序中访问Web服务?

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:31 24 4
gpt4 key购买 nike

我正在开发 Web 服务。我为我的 Web 应用程序生成了 WSDL 文件。在这里,根据用户名,我获取了用户详细信息。我想在另一个应用程序中运行此 Web 服务。

这就是为什么我使用 d:>wsimport -keep -s src Wsdl url 生成 .java 文件,并编写客户端类来获取详细信息。但这里我有一个异常(exception)。我怎样才能克服这个问题。

下面是我的UserName.java类。通过使用这个类,我生成了 wsdl 文件。

public class UserName implements UserId {
String result = null;

@Override
public String getName(String name) {
try {

String name1 = name;

JAXBContext jaxbContext = JAXBContext.newInstance(User.class);

Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
File file = new File("D:/MyWorkspace/JaxWsWithxml/User.xml");
User userUnmarshal = (User) jaxbUnmarshaller.unmarshal(file);

List<User> list = userUnmarshal.getUser();
for (User user : list)
if (user.getName().equals(name1)) {
result = user.getName();
System.out.println("Id " + " " + user.getId() + " "+ user.getName());

}

} catch (JAXBException e) {
e.printStackTrace();
}
return result;
}
}

下面是UserId.java接口(interface)

 public interface UserId
{
public String getName(String name);
}

下面是 Client.java 在另一个应用程序中,我使用 WSDL 文件获得了 .java 文件

public class Client {

public static void main(String[] args) {
// TODO Auto-generated method stub
String name1="raj";
int id;
String a=name(name1);
System.out.println("Name is"+a);

}
public static String name(String name1)
{
UserNameService us=new UserNameService();
UserName userNmae=us.getUserName();
return userNmae.getName(name1);
}

}

这里UserNameServiceWSDL文件中的服务名称和WSDL文件中的UserName端口名称。

我的异常(exception)是:

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException:
HTTP transport error: java.net.ConnectException: Connection refused: connect
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)

这是我的异常,我该如何解决,谢谢...

最佳答案

首先您需要检查部署的服务是否运行正常。由于您遇到连接拒绝异常,我猜测服务器运行不正常。或者您的客户端应用程序可能无法访问 Web 服务 URL。由于您已经有了 WSDL,因此您还可以通过直接从 java 代码引用 WSDL 来调用 Web 服务/JAX-WS Client

关于java - 如何在客户端应用程序中访问Web服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com