通过axis调用java语言写的部署在tomcat服务器上的webservice

第一步 生成webservice服务
我是用java语言写的webservice服务。用的是eclipse软件和tomcat服务器。
配置tomcat服务器自己百度解决。
首先 File -> new -> Dynamic web Project 先建立一个名为my_server的web项目。
在这里插入图片描述
然后再src中建立一个包cn.jun,在包中建立三个java文件:WebService、WebServicePublish、WebServiceImpl。
在这里插入图片描述
其中代码如下:
WebService类中:

package cn.jun;
import javax.jws.WebMethod
@javax.jws.WebService
public interface WebService {
	@WebMethod
	String sayHello();
}

WebServiceImpl类中:

package cn.jun;

@javax.jws.WebService
public class WebServiceImpl implements WebService{
public String sayHello() {
	System.out.println("服务被调用");
	String aaa="我是服务器程序";
	return aaa;
}

}

WebServicePublish类中:

package cn.jun;

import javax.xml.ws.Endpoint;

public class WebServicePublish {
public static void main(String[] args) {
	String address="http://你的ip:9050/WS_Server/WebService";  //此处你的ip改成你当前电脑的ip地址,可以通过cmd中用ipconfig/all查看ipv4地址
	//9050是端口号,端口号可以任意值只要不冲突就行
	Endpoint.publish(address, new WebServiceImpl());
	System.out.println("发布webservice成功");
}
}

直接点击运行(右键运行方式-> java应用程序)。
在这里插入图片描述
此时在浏览器中输入下面圆圈中蓝色字体部分,后面要加上 ?wsdl
在这里插入图片描述
此时看到成功发布,记住下图中的圆圈里的内容,因为后面要用到。
在这里插入图片描述
但是上面步骤生成的webservice存在问题,就是当我退出eclipse后,再从新进入eclipse后,之前在浏览器中查看的wsdl就不能查看了。可能的原因是当关闭了eclipse后,tomcat服务器也关闭了,所以发布在服务器上的werbservice服务就不能用了。此时你需要,重新发布webservice(就是重新运行WebservicPublish类,当控制台“输出发布webservice成功”)。

第二步 通过axis方式访问webservice服务。
首先要下载下面axis相关的jar包
相关网站有:
https://mvnrepository.com/
在这里插入图片描述
然后 File -> new -> Dynamic web Project 再建立一个名为my_client的web项目。并在里面建立AxisClient类在这里插入图片描述
AxisClient类的代码:

package cn.jun;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class AxisClient {
 
/**
 * @param args
 * @throws AxisFault
 */
public static void main(String[] args) {try {
		String endpoint = "http://ip:9050/WS_Server/WebService?wsdl";  //WSDL的URI,此处ip是:你发布wsdl的电脑的ipv4地址,由于是使用自己电脑发布的,所以ip就是自己电脑的ipv4地址
		Service service = new Service();                      //
		Call call =  (Call)service.createCall();               //
		call.setTargetEndpointAddress(new URL(endpoint));    //这些照抄就行
		
		call.setOperationName(new QName("http://jun.cn/","sayHello"));//此处http://jun.cn/是wsdl中画圈的targetNamespace ,sayHello是要用的方法名字方法名字,此处根据你自己生成的wsdl文件改成相应的就行。
		String ret = (String)call.invoke(new Object[]{""});             //ret就接收返回的值
		System.out.println("return value is "+ret);                        //在控制台输出返回的值
		} catch (ServiceException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

}
}

此时再将之前下载的jar包复制到lib文件夹下
在这里插入图片描述
然后全选择,点击右键构建路径->添加至构建路径
在这里插入图片描述
最后运行AxisClient程序在控制台中就可以看到结果,客户端调用webservice的sayHello方法,返回了"我是服务器程序"
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值