基于jws发布webservice服务

基于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>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值