java 实现WebService 以及不同的调用方式

实现WebService的java代码:

首先,在Java中实现WebService可以使用JAX-WS规范,它是Java API for XML Web Services的缩写。下面是一个简单的示例:

1. 创建一个Java类,声明为一个WebService:

```

import javax.jws.WebMethod;

import javax.jws.WebService;

@WebService

public class HelloWorld {

@WebMethod

public String sayHello(String name) {

return "Hello, " + name + "!";

}

}

```

2. 使用JAX-WS提供的工具生成发布WebService的代码:

通过命令行执行以下命令:

```

wsimport -keep http://localhost:8080/HelloWorldService?wsdl

```

这将生成一些Java代码,用于发布和访问WebService。

3. 创建一个SOAP服务器来发布WebService:

```

import javax.xml.ws.Endpoint;

public class HelloWorldServer {

public static void main(String[] args) {

// 创建WebService对象

HelloWorld helloWorld = new HelloWorld();

// 发布WebService

String address = "http://localhost:8080/HelloWorldService";

Endpoint.publish(address, helloWorld);

System.out.println("WebService已经启动,地址:" + address);

}

}

```

4. 启动该服务器,WebService将会运行在`http://localhost:8080/HelloWorldService`上。

不同的调用方式:

在客户端使用WebService时,有几种不同的方式来调用:

1. 使用Java的代理类:

通过`wsimport`命令生成的代码,可以用来创建WebService的代理类。代理类会为我们处理与WebService的通信细节,简化了调用过程。

```

import com.example.HelloWorldService;

import com.example.HelloWorld;

public class HelloWorldClient {

public static void main(String[] args) {

// 创建代理类

HelloWorldService service = new HelloWorldService();

HelloWorld helloWorld = service.getHelloWorldPort();

// 调用WebService方法

String result = helloWorld.sayHello("Alice");

System.out.println(result);

}

}

```

2. 使用Apache CXF框架:

Apache CXF是一个开源的WebService框架,它提供了更多的灵活性和功能。下面是一个使用Apache CXF的示例:

首先,添加Apache CXF的依赖:

```

org.apache.cxf

cxf-rt-frontend-jaxws

3.4.1

```

然后,使用CXF的API创建代理类:

```

import com.example.HelloWorld;

public class HelloWorldClient {

public static void main(String[] args) {

// 创建WebService代理类

HelloWorldService service = new HelloWorldService();

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

// 调用WebService方法

String result = helloWorld.sayHello("Alice");

System.out.println(result);

}

}

```

3. 使用HTTPURLConnection或HttpClient:

如果不想使用代码生成的代理类,也可以直接使用HTTPURLConnection或HttpClient来发送SOAP请求。这种方式更为灵活,但也更加繁琐。

```

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.URL;

public class HelloWorldClient {

public static void main(String[] args) {

try {

// 创建SOAP请求

String xml = "" +

"" +

"" +

"Alice" +

"" +

"" +

"";

// 发送SOAP请求

URL url = new URL("http://localhost:8080/HelloWorldService");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod("POST");

conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");

conn.setDoOutput(true);

OutputStream out = conn.getOutputStream();

out.write(xml.getBytes());

out.flush();

// 获取响应结果

int statusCode = conn.getResponseCode();

...

} catch (Exception e) {

e.printStackTrace();

}

}

}

```

以上是实现和调用WebService的简要介绍,希望能对你有所帮助。如果需要更详细的介绍和示例代码,可以查阅相关的文档和教程。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(105) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部