gpt4 book ai didi

java - 如何正确使用生成的Web Service? ( Apache CXF)

转载 作者:行者123 更新时间:2023-12-02 04:58:47 24 4
gpt4 key购买 nike

我创建了一个 SOAP WS 并将其部署在本地主机上。在同一台服务器上,我想创建一个 Web 应用程序,它将 XML 请求发送到 Web 服务,从而操作数据库中的数据。

我是否必须重新生成所有必需的 java 类 (wsimport) 才能使用 Web 服务,还是有其他方法可以做到这一点?生成的类弄乱了我的项目。

最佳答案

您可以使用 URL、QName 和服务。

假设您有一个服务端点接口(interface),如下所示:

@WebService
@SOAPBinding(style = Style.RPC)

public interface HelloWorld{

@WebMethod
String getString(String name);

}

服务端点实现如下:

@WebService(endpointInterface = "com.bot.ws.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

@Override
public String getString(String name) {
return "Hello World received input = " + name;
}

}

您可以按如下方式调用此网络服务:

public class WSClient {

public static void main(String[] args) throws Exception {

URL url = new URL("http://localhost:8080/ws/hello?wsdl");

QName qname = new QName("http://bot.ws/", "HelloWorldImplService");

Service service = Service.create(url, qname);

HelloWorld hello = service.getPort(HelloWorld.class);

System.out.println(hello.getString("bot"));

}

}

请记住,您需要将您的 Web 服务端点接口(interface)复制到将调用您的 Web 服务(如果它们不在同一场 war 中)的 Web 应用程序。此外,此示例假设您的 Web 服务采用 String 参数并返回 String。如果您使用用户定义的类型,则需要使用 JAXB/XMLBeans 等从模式生成类。

关于java - 如何正确使用生成的Web Service? ( Apache CXF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28514978/

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