webService的学习基础

本文详细介绍了如何在eclipse+tomcat环境下部署Webservice,包括引入开发包、配置catalina.properties文件、编写JavaEE项目及客户端调用过程。同时,展示了如何通过wsimport命令生成客户端代码,并提供了调用服务器端方法的示例。
摘要由CSDN通过智能技术生成

当前拥有的环境是: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"/>。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值