webService的学习基础

当前拥有的环境是:eclipse+tomcat。还需要jaxws-ri.zip里面的jar。

tomcat导入开发webservice需要的开发包:

(1)jaxws-ri.zip解压里面的lib文件夹到tomcat根目录中的shared文件夹下(没有就新建一个)

(2)修改apache-tomcat-7.0.42/conf/catalina.properties这个文件。增加shared.loader=后面的内容为shared.loader=${catalina.home}/shared/lib/*.jar,${catalina.home}/shared/lib  。

编写项目:

新建一个javaee项目名为:webService.

weatherService.java文件

package com.matrix.service;

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

import com.matrix.dao.WeatherDao;
import com.matrix.entity.Weather;

@WebService
public class WeatherService {

	WeatherDao weatherDao = new WeatherDao();
	@WebMethod
	public String getName() {
		String name = "raise";
		return name;
	}
	
}
在客户端会生成对应的接口,方便调用


javeee的web.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
    <welcome-file-list>
    	<welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>
    
    <servlet>
        <servlet-name>WeatherService</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>WeatherService</servlet-name>
        <url-pattern>/WeatherService</url-pattern>
    </servlet-mapping>
    
    
</web-app>
会根据地址调用过滤器,调用下面的sun-jaxws.xml

sun-jaxws.xml文件

<?xml version="1.0" encoding="UTF-8"?>


<endpoints
    xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
    version="2.0">

    <endpoint
        name="WeatherService"
        implementation="com.matrix.service.WeatherService"
        url-pattern="/WeatherService" />
</endpoints>
ok,到这里服务器端已经配置完成。

可以通过http://localhost:80/webService/WeatherService?wsdl来访问服务器自动生成的wsdl文档。


下面为客服端开发

新建一个项目名为clientWeather

在clientWeather工作空间内新建一个bin文件夹,因为我们要根据wsdl自动生成客服端代码需要这个文件夹。

在cmd命令中进入clientWeather文件夹下,输入以下代码:


E:\jaxws-ri\bin\wsimport是jaxws-ri.zip包里面的命令。最后面的是wsdl文档。

客户端clientWeather项目中会自动生成代码包com.xxxxx.service

新建test.java写测试类:

test.java文件

package com.xxxxxx.test;

import com.matrix.service.Weather;
import com.matrix.service.WeatherServiceService;

public class Test01 {

	public static void main(String[] args) {
		WeatherServiceService w = new WeatherServiceService();
		
		String result = w.getWeatherServicePort().getName();
		Weather weather =w.getWeatherServicePort().getWeatherByCode(54119);
		System.out.println(result+"---->"+weather.getTemp());
		System.out.println(result);
	}
}

已经实现了客户端访问服务器。



注意:如果cmd命令解析出错

可以尝试将wsdl下载到本地后将<s:element ref="s:schema" /><s:any />改成<s:any minOccurs="2" maxOccurs="2"/>。

你可能感兴趣的:(webService的学习基础)