问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求高手帮忙我现在用myeclipse+axis2 做一个webservice接口的一个小例子!其结果是打印出hello,

发布网友 发布时间:2022-05-01 03:09

我来回答

2个回答

懂视网 时间:2022-05-01 07:31

接了个简单的毕业设计。需要WebService实现前台显示后台数据库存储,本人菜鸟,想了下,决定服务端存放有数据库连接的方法,客户端调用服务端提供的方法,实现与数据库的连接。

一、准备工作:

1.下载AXIS2框架

这里使用的版本是axis2-1.7.2,下载地址:http://axis.apache.org/axis2/java/core/download.cgi官网。 

(1)Binary distribution axis2-1.7.2-bin.zip

(2)WAR distribution axis2-1.7.2-war.zip

解压 axis2-1.4.1-war.zip 将 axis2.war 放到%TOME_HOME%webapps中.启动Tomcate. IE地址输入:http://localhost:<port>/axis2/

技术分享

显示欢迎界面,说明AXIS2配置成功。

2.集成AXIS2框架

接下来在Myeclipse上集成AXIS2框架,下载地址:http://axis.apache.org/axis2/java/core/tools/index.html

两个文件,

(1)Service Archive Wizard - Eclipse Plug-in

(2)Code Generator Wizard - Eclipse Plug-in

2:配置环境: 2.1:配置java环境变量(不赘述)。 

3.安装插件:解压axis2-eclipse-codegen-plugin-1.zip和axis2-eclipse-service-plugin-.zip,把得到的两个jar包放入eclipse目录下的plugins中,重启eclipse。

技术分享

安装完插件后,打开eclipse,在package explorer 中点击右键--->选择new---->other 如果安装正确你会看到

技术分享

3.配置tomcat

解压,配置环境变量Window->Perferences->Server->tomcat下添加。(不赘述)。
由此,配置工作结束。

注意:建议JDK使用1.6及以下,这里我使用的是1.6

二、编写服务端

接下来,在Myeclipse中创建两个web项目,并将axis2-1.7.2-bin.zip文件解压,配置axis2home环境变量(自行百度),并将axis2-1.7.2——lib下所有jar包拷贝道Server下的lib中,如图

技术分享

首先来写服务端,此处已登录为例;首先是将mysql-connector-java-3.0.16-ga-bin数据库连接jar包拷贝到lib文件夹下,

1.编写连接数据库的ConnectionManager文件

package com.book.basic;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class ConnectionManager {
 public static Connection conn=null;
 public static ResultSet rs=null;
 public static PreparedStatement pstmt=null;
 public static PreparedStatement pstmt2=null;
 /**
 * @return
 */
  public static Connection getConnection(){
 	 try { 
 		 Context ct=new InitialContext(); 
 		 DataSource ds=(DataSource) ct.lookup("java:comp/env/jdbc/webbook"); 
 		 conn=ds.getConnection();
 	 } catch (SQLException e) {
 	 e.printStackTrace(); 
 	 }catch (NamingException e) {
 	 e.printStackTrace();
 	 }
 	 return conn;
  }
		public static void closeAll(){
			try{
				if(conn!=null){
					conn.close();
				}
				if(pstmt!=null){
					pstmt.close();
					
				}
				if(rs!=null){
					rs.close();
				}
			}catch(SQLException e){
				e.printStackTrace();
			}		
		}
	

}<span style="font-family:Microsoft YaHei;font-size:18px;">
</span>

在WebRoot目录下创建context.xml:

有图:技术分享

<?xml version='1.0' encoding='utf-8'?>
<!-- The contents of this file will be loaded for each web application -->
<Context>
<Resource
	name="jdbc/webbook" auth="Container" type="javax.sql.DataSource"
	maxAction="100" maxIdle="30" maxWait="10000"
 username="root" password="123456"
	driverClassName="com.mysql.jdbc.Driver"
	url="jdbc:mysql://localhost:3306/webbook?characterEncoding=UTF-8"
	/>

</Context>
然后是web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 <display-name></display-name>	
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <servlet> 
 <servlet-name>Axis2Servlet</servlet-name> 
 <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> 
 <load-on-startup>1</load-on-startup> 
 </servlet> 
 
 <servlet-mapping> 
 <servlet-name>Axis2Servlet</servlet-name> 
 <url-pattern>*.jws</url-pattern> 
 </servlet-mapping> 
 
 <servlet-mapping> 
 <servlet-name>Axis2Servlet</servlet-name> 
 <url-pattern>/services/*</url-pattern> 
 </servlet-mapping> 
</web-app><span style="font-family:Microsoft YaHei;font-size:18px;">
</span>

同时要注意tomcat路径下,conf——context.xml不要忘记配置

技术分享

2.创建实体类User

技术分享
代码如下:

package com.book.entity;

public class User {
	private int id;
	private String name;
	private String psw;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPsw() {
		return psw;
	}
	public void setPsw(String psw) {
		this.psw = psw;
	}
}<span style="font-family:Microsoft YaHei;font-size:18px;">
</span>

请参照此代码,自行创建对应数据库webbbook下的user表。


3.编写数据库访问类UserService

package com.book.service;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.book.basic.ConnectionManager;
import com.book.entity.User;

public class UserService extends ConnectionManager{
	public int chkUser(String name, String psw) {
		int n=0;
		conn=getConnection();
		String sql="select * from user where name=? and psw=?";
		
		try {
			pstmt=conn.prepareStatement(sql);
			pstmt.setString(1,name);
			pstmt.setString(2,psw);
			rs=pstmt.executeQuery();
			if(rs.next()){
				n=1;
			}else{
				n=0;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return n;
	}	
	
}

4.发布UserService

对此文件进行发布,UserService上右键new——other——axis——axis2 service archier

技术分享
找到WorkSpace下当前项目的wWEB-INF下classess

技术分享

技术分享

添加mysql的jar包

技术分享

技术分享

选择输出位置tomcat下webapps——axis2——WEB-INF——services

技术分享

发布完毕,不熟Server项目,启动tomcat,输入:localhost:8080/axis2检查是否成功。

成功显示axis2的欢迎界面,点击services,点击UserService

技术分享

显示:

技术分享

复制浏览器地址。服务端编写完毕。

三、编写客户端Client

1.手动生成服务端发布的文件

开始编写客户端Client。由于使用myeclipse插件总是报错,没有解决,所以使用cmd命令手动生成。

首先,确保配置好了AXIS2_HOME。然后运行cmd(最好用管理员),我在D盘下有个demo文件夹, 为了避免找不到生成到哪了,所以就进入这个文件夹在生成。

技术分享

接下来,把生成的文件,src下面的整个拷贝到项目中,如图,

技术分享

如果有错误,请把Server的lib下的jar包都拷过来就ok了。

2.编写客户端调用服务器方法的类LoginServlet

然后,写客户端调用服务器方法的类。

创建LoginServlet在com.book.servlet文件夹下。

技术分享

修改Web.xml下自动生成的配置如图:

<servlet>
 <description>This is the description of my J2EE component</description>
 <display-name>This is the display name of my J2EE component</display-name>
 <servlet-name>LoginServlet</servlet-name>
 <servlet-class>com.book.servlet.LoginServlet</servlet-class>
 </servlet>

 <servlet-mapping>
 <servlet-name>LoginServlet</servlet-name>
 <url-pattern>/LoginServlet</url-pattern>
 </servlet-mapping>	

然后编写LoginServlet

package com.book.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.book.service.UserServiceStub;
import com.book.service.UserServiceStub.ChkUserResponse;

public class LoginServlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public LoginServlet() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("GBK");
		response.setCharacterEncoding("GBK");
		String name =request.getParameter("username");
		String psw =request.getParameter("password");
		String target = "http://localhost:8080/axis2/services/UserService";
		UserServiceStub stub = new UserServiceStub(target);
		UserServiceStub.ChkUser chku = new UserServiceStub.ChkUser();
		chku.setName(name);
		chku.setPsw(psw);
		UserServiceStub.ChkUserResponse chkur = stub.chkUser(chku);
		int n=chkur.get_return();		
		if(n>0){		
			request.getRequestDispatcher("index.jsp").forward(request, response);
		}else{
			request.getRequestDispatcher("error.jsp").forward(request, response);
		}		
	}	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		try {
			doGet(request,response);
		} catch (IOException e) {
		
			e.printStackTrace();
		}
	}

	/**
	 * Initialization of the servlet. <br>
	 *
	 * @throws ServletException if an error occurs
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}

前台页面就不写了,文章最后给出项目下载地址。

3.测试

部署Client,启动服务器,输入:http://localhost:8080/Client/Login.html

技术分享技术分享

跳转到首页,登陆成功!

真的是好久不碰WebService都忘干净了,这次的项目确实是个挑战,每天遇到很多问题,一部分能就解决就解决问题,不能就得绕过这个问题。虽然看起来就是这么简单的技术,但是身为菜鸟,每次通过各种途径解决总是很开心的,直到最终项目成功交付。

如有问题可以参考:

1.http://wenku.baidu.com/link?url=tL2GL5oyrIvN6B47nkou6KPtXRSHkm9Q67t1kq7SWVYN8t5GzjoiG_apPxV7JC_BCGulsV85xpI1KbxJF6vRmDjUpB04fEubO5WDrTL2Pz3

2.http://www.blogjava.net/tianchijiaozi/archive/2013/03/15/396452.html


AXIS2+Myeclipse实现WebService数据库存储简单实例

标签:

热心网友 时间:2022-05-01 04:39

使用AXIS创建和访问Web Services的例子已经发送到你的邮箱。
用java 编写一个 基于Web Service的软件

如果是要深层次的去理解WebServices还需努力,下面是我给你找的一个网上的例子作为参考: 使用XFire+Spring构建Web Service XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。 相 对于Axis来说,目前XFire相对受欢迎,加上其提供了和Sprin...

我想用java做一个web services.请问该怎么做

5)Service Name-填写你的service名称,Class Name-填写类名称,要包括包名,然后点击load,然后点击Finish,这时webservice就发布成功了;6)然后到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了一个.aar的文件;注意:以上的方式是发布到axis2.war包中,你也可以把生成.aar文件copy到你的实际应用中,同时,...

如何将用myeclipse开发的webservice的工程部署到tomcat上

1,MyEclipse关联tomcat 在MyEclipse里点Run/Stop/Restart MyEclipse Servers然后配置你的Tomcat路径 2,把项目部署到tomcat,在1的左面有个部署按钮,先选择项目,然后添加tomcat,Redepoly部署, 3,启动你的tomcat服务器 4,搞定 本回答被提问者和网友采纳 lipei1949 | 推荐于2018-03-05 18:32:57 举报| 评论(3) ...

如何有delphi5调用webservice,别人写的webservice?

1、 New|Other|WebServices|SOAP Server Application|这里先选择建立Web App Debugger类型的WebService,因为这种类型的WebService便于调试,当我们调试好它,准备发布时再将此类型转换为ISAPI类型。 2、 选择Web App Debugger后,随便输入一个ClassName,这里我们输入“Test” 3、 随后Delphi会询问你是否建立接口单元,选择是...

java是做什么的啊

java就是计算机编程语言 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性...

java学习作为一名java初学者,如何快速学习j

JAVA快速入门的方法:1、时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。2、在学习的过程中,最好能够【了解Java】的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。3、在学习的...

java调用vb webservice

1.编写类,跟普通JAVABEAN没什么区别。 2.配置文件 如果是要深层次的去理解WebServices还需努力,下面是我给你找的一个网上的例子作为参考: 使用XFire+Spring构建Web Service XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。 相 对于...

为什么在delphi中调用用delphi写的webservice会有这样的提示

1、 New|Other|WebServices|SOAP Server Application|这里先选择建立Web App Debugger类型的WebService,因为这种类型的WebService便于调试,当我们调试好它,准备发布时再将此类型转换为ISAPI类型。 2、 选择Web App Debugger后,随便输入一个ClassName,这里我们输入“Test” 3、 随后Delphi会询问你是否建立接口单元,选择是...

axis2webservice myeclipse tomcat myeclipse svn myeclipse和idea myeclipse是什么 myeclipse使用教程 myeclipse2014 axis2调用wsdl myeclipse10
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
嘉兴南湖中转场到平湖要多久 从江苏发往浙江平湖,发什么快递,什么价位,是一件羽绒服 浙江平湖市乍浦镇寄到浙江平湖海盐!5公斤,顺丰和圆通价格? 我是男生,现在左眼在跳,什么意思呀? 帕加尼风神价格多少钱? 苹果手机怎么开启数据流量显示 痛失珍珠的遗憾 有谁月子里吃了枸杞吗 范德蒙矩阵有哪些性质? 编码理论中的数学目录 工业现场将模拟量信号用光纤进行传输主要是为了解决什么问题? 模拟信号和数字信号在光纤传输中发生信号失真,试分析其原因,及异同 模拟信号转光纤传输 如何将模拟信号和数字通过光纤转换成光信号,进行远距离传输?用于EMC测试和安全裕度相关测试 水泥地用什么拖把? 您家适合用哪种拖把 老爷爷跳广场舞时好像什么一样 料娣广场舞。游牡情歌 拖把有那几种? 拖把有很多种,哪种好些? 有男人跳广场舞吗? 拖把都有哪几种类型呢?哪种更好用? 谁知道和大妈跳广场舞的小伙叫什么 拖把的有多少种分类?? 廖第游牧时光是什么舞种? 最新天天向上19岁跳广场舞的男生叫什么 很早跳广场舞的小伙子叫廖什么来着- 百度 用ask sb to do sth造句(初一) sb.needtodosth与sb.needsdoingsth的区别? 用helpsbtodosth造句? 能否用一根光纤传输两路模拟信号,如果可以,如何实现?如果不行,说明理由 光纤能传播模拟信号吗 模拟信号转光纤设备 拼多多拼单会不会暴露个人信息。会不会被黑客攻击? 华为手机怎么显示全部号码 我办的中国银行信用卡,已核准,制卡中,是什么意思 中国银行信用卡办理了3个月一直显示在制卡中! 拼多多拼单真的假的 华为手机通讯录怎样显示全部联系人? 网上申请中国银行的信用卡,查询结果已制卡邮寄中,是什么意思 拼多多上和其他人拼单真的能买到低于标价的东西吗?还是说这只是个噱头? 华为手机怎样拔一个数字键就显示整个号码? 中国银行信用卡从微信公众号查询已核准,制卡中,打电话客服也告诉了我额度,是不是表示已经批了? 中行信用卡进度查询说制卡中 打客服询问说账户建立待制卡 到底哪个准? 中行信用卡20000额度制卡中是不是就稳了? 中国银行信用卡审核通过已制卡邮寄中要多久才收到 刚在网上查到中国银行信用卡在制卡中,用行驶证申请的鲁通ETC信用卡,这种卡的最低额度是多少?? 中国银行信用卡申请两个多月了,都是审核中,怎么回事。 中国银行的信用卡是在哪里制卡的? 中国银行信用卡 在微信上查已经通过审核 卡片状态已制卡邮寄中。但是打客服没有邮寄编号 这是什么情