基于jws发布webservice服务
用途
用于验证基于jws搭建的webservice服务端与客户端。
WebService服务端
1、目录结构
D:.
│ pom.xml # maven配置
│ README.md
│
├─logs #日志目录
└─src
├─main
│ ├─java
│ │ └─com
│ │ └─demo
│ │ └─ws
│ │ WSServer.java # WebService服务端代码
│ │
│ └─resources
│ gen-ws-client.bat # 生成ws代理类
│ log4j.properties # 日志配置
│
└─test
2、服务端代码
WSServer.java
package com.demo.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
import org.apache.log4j.Logger;
/**
* jws发布webservice服务
*
*/
@WebService
public class WSServer {
private static Logger log = Logger.getLogger(WSServer.class);
@WebMethod
public int add(int a, int b) {
int result = a + b;
log.info("调用add:" + a + "+" + b + "=" + result);
return result;
}
public static void main(String[] args) {
String address = "http://localhost:8001/wsdemo";
Object implementor = new WSServer();
Endpoint.publish(address, implementor);
log.info("webService 服务发布成功!");
log.info("wsdl地址:" + address + "?wsdl");
}
}
3、生成ws代理类
服务端启动后,使用wsimport生成客户端接口代理,批处理脚本如下:
gen-ws-client.bat
@echo off
rem 生成Webservice代理文件
rmdir /s/q output
mkdir output
set wsdl_url=http://127.0.0.1:8001/wsdemo?wsdl
wsimport -s output -encoding utf8 -Xnocompile %wsdl_url%
pause
4、日志配置
log4j.properties
log4j.rootLogger = debug,stdout,D,E
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %l - %m%n
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Encoding=UTF8
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} - [ %p ] %l %c %t - %m %n
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Encoding=UTF8
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} - [ %p ] %l %c %t - %m %n
5、pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>wsdemo_server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>wsdemo</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
webservice 客户端
1、目录结构
D:.
│ pom.xml
│ README.md
│
└─src
├─main
│ └─java
│ └─com
│ └─demo
│ ├─ws # 服务端接口代理
│ │ Add.java
│ │ AddResponse.java
│ │ ObjectFactory.java
│ │ package-info.java
│ │ WSServer.java
│ │ WSServerService.java
│ │
│ └─wsclient
│ WSClient.java # 客户端代码
│
└─test
└─java
2、导入代理类
将服务端生成的代理类导入到工程中
3、客户端代码
package com.demo.wsclient;
import com.demo.ws.WSServer;
import com.demo.ws.WSServerService;
/**
* ws client test
*/
public class WSClient {
public static void main(String[] args) {
WSServer service = new WSServerService().getWSServerPort();
System.out.println("调用add:1+2=" + service.add(1, 2));
}
}
4、pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>wsdemo_client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>wsdemo_client</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>