gpt4 book ai didi

java - 如何使用普通的java类访问web服务?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:26 24 4
gpt4 key购买 nike

**My Web service class**

import javax.jws.WebMethod;
import javax.jws.WebService;

/**
* @author edward
*
*/
@WebService
public class HelloWeb {

@WebMethod
public String sayGreeting(String name) {
return "Greeting " + name + "....!";
}

}

我的服务器java类

import javax.xml.ws.Endpoint;

public class Server {
public static void main(String[] args) {
Endpoint.publish("http://localhost:9090/HelloWeb", new HelloWeb());
System.out.println("Hello Web service is ready");
}
}

服务器运行正常,我可以使用返回 WSDL 代码的 url 访问服务。但是我想使用 java 中的唯一 URL 访问服务器。我有以下客户端 java 代码。

客户端访问HelloWeb服务

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;

public class WebClient {
String wsdl = "http://172.21.1.65:9090/HelloWeb?wsdl";
String namespace = "http://helloweb.com";
String serviceName = "HelloWebService";

QName serviceQN = new QName(namespace, serviceName);

{
try{

ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(new URL(wsdl), serviceQN);

}catch (Exception e) {

}
}
}

最佳答案

试试这个,注意我在“测试”包中编译并运行了你的服务器,这很重要。这只是从 JAX-WS 开始的一个基本示例。

package test;

import java.net.URL;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class WebClient {

@WebService(name = "HelloWeb", targetNamespace = "http://test/")
public interface HelloWeb {
@WebMethod
String sayGreeting(String name);
}

public static void main(String[] args) throws Exception {
Service serv = Service.create(new URL(
"http://localhost:9090/HelloWeb?wsdl"),
new QName("http://test/", "HelloWebService"));
HelloWeb p = serv.getPort(HelloWeb.class);
System.out.println(p.sayGreeting("John"));
}
}

关于java - 如何使用普通的java类访问web服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13583918/

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