WebService简单案例

来源:互联网 发布:淘宝绫致时装官方店是 编辑:程序博客网 时间:2024/05/17 02:53

服务端代码

代码总览


DBConnection.java

package com.itlwc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBConnection {private static Connection conn;private String user = "sa";private String password = "sa";private String className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";private String url = "jdbc:microsoft:sqlserver:" +"//localhost:1433;SelectMethod=Cursor;dataBaseName=itlwc";private DBConnection() {try {Class.forName(this.className);conn = DriverManager.getConnection(url, user, password);System.out.println("连接数据库成功");} catch (ClassNotFoundException e) {System.out.println("连接数据库失败");} catch (SQLException e) {System.out.println("连接数据库失败");}}@SuppressWarnings("static-access")public static Connection getConn() {return new DBConnection().conn;}// 测试数据库连接是否成功public static void main(String[] args) {getConn();}}
Student.java

package com.itlwc;public class Student {// 学号private String id;// 姓名private String name;// 性别private String sex;// 年龄private String age;public Student() {super();}public Student(String id, String name, String sex, String age) {super();this.id = id;this.name = name;this.sex = sex;this.age = age;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}@Overridepublic String toString() {return "学号: " + id + "\n姓名: " + name + "\n性别: " + sex + "\n年龄: " + age;}}
IStudent.java

package com.itlwc;public interface IStudent {// 增加学生public boolean add(Student student);// 查找学生public Student find(String id);}
StudentImpl.java

package com.itlwc;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class StudentImpl implements IStudent {private Connection conn = DBConnection.getConn();// 增加public boolean add(Student student) {String sql = "insert into student values('" + student.getId() + "','"+ student.getName() + "','" + student.getSex() + "','"+ student.getAge() + "')";PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);ps.executeUpdate();return true;} catch (SQLException e) {e.printStackTrace();return false;}}// 查询public Student find(String id) {String sql = "select * from student where id='" + id + "'";Student student = new Student();PreparedStatement ps = null;ResultSet rs = null;try {ps = conn.prepareStatement(sql);rs = ps.executeQuery();if (rs.next()) {student.setId(rs.getString(1));student.setName(rs.getString(2));student.setSex(rs.getString(3));student.setAge(rs.getString(4));}} catch (SQLException e) {e.printStackTrace();}return student;}}
web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <servlet>    <servlet-name>XFireServlet</servlet-name>    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>    <load-on-startup>0</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>XFireServlet</servlet-name>    <url-pattern>/services/*</url-pattern>  </servlet-mapping></web-app>
services.xml

<?xml version="1.0" encoding="UTF-8"?><beans><service xmlns="http://xfire.codehaus.org/config/1.0"><name>Student</name><serviceClass>com.itlwc.IStudent</serviceClass><implementationClass>com.itlwc.StudentImpl</implementationClass></service></beans>

http://localhost:8090/MyService/services/Student?wsdl

<?xml version="1.0" encoding="UTF-8" ?><wsdl:definitions targetNamespace="http://itlwc.com"xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"xmlns:tns="http://itlwc.com"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><wsdl:types><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"attributeFormDefault="qualified" elementFormDefault="qualified"targetNamespace="http://itlwc.com"><xsd:complexType name="Student"><xsd:sequence><xsd:element minOccurs="0" name="age"nillable="true" type="xsd:string" /><xsd:element minOccurs="0" name="id" nillable="true"type="xsd:string" /><xsd:element minOccurs="0" name="name"nillable="true" type="xsd:string" /><xsd:element minOccurs="0" name="sex"nillable="true" type="xsd:string" /></xsd:sequence></xsd:complexType><xsd:element name="add"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1"name="in0" nillable="true" type="tns:Student" /></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="addResponse"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1"name="out" type="xsd:boolean" /></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="find"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1"name="in0" nillable="true" type="xsd:string" /></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="findResponse"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1"name="out" nillable="true" type="tns:Student" /></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></wsdl:types><wsdl:message name="addRequest"><wsdl:part name="parameters" element="tns:add" /></wsdl:message><wsdl:message name="findResponse"><wsdl:part name="parameters" element="tns:findResponse" /></wsdl:message><wsdl:message name="findRequest"><wsdl:part name="parameters" element="tns:find" /></wsdl:message><wsdl:message name="addResponse"><wsdl:part name="parameters" element="tns:addResponse" /></wsdl:message><wsdl:portType name="StudentPortType"><wsdl:operation name="add"><wsdl:input name="addRequest" message="tns:addRequest" /><wsdl:output name="addResponse" message="tns:addResponse" /></wsdl:operation><wsdl:operation name="find"><wsdl:input name="findRequest" message="tns:findRequest" /><wsdl:output name="findResponse" message="tns:findResponse" /></wsdl:operation></wsdl:portType><wsdl:binding name="StudentHttpBinding"type="tns:StudentPortType"><wsdlsoap:binding style="document"transport="http://schemas.xmlsoap.org/soap/http" /><wsdl:operation name="add"><wsdlsoap:operation soapAction="" /><wsdl:input name="addRequest"><wsdlsoap:body use="literal" /></wsdl:input><wsdl:output name="addResponse"><wsdlsoap:body use="literal" /></wsdl:output></wsdl:operation><wsdl:operation name="find"><wsdlsoap:operation soapAction="" /><wsdl:input name="findRequest"><wsdlsoap:body use="literal" /></wsdl:input><wsdl:output name="findResponse"><wsdlsoap:body use="literal" /></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="Student"><wsdl:port name="StudentHttpPort"binding="tns:StudentHttpBinding"><wsdlsoap:addresslocation="http://localhost:8090/MyService/services/Student" /></wsdl:port></wsdl:service></wsdl:definitions>

客户端代码

代码总览


客户端中IStudent,Student两个java文件与服务端中IStudent,Student是一样的

Test.java

package com.itlwc;import java.net.MalformedURLException;import org.codehaus.xfire.XFire;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;public class Test {public static void main(String[] args) {//创建web服务的元数据Service service = new ObjectServiceFactory().create(IStudent.class);//创建web服务代理XFire xFire = XFireFactory.newInstance().getXFire();XFireProxyFactory factory = new XFireProxyFactory(xFire);//服务地址(注意这个url地址后面不带?wsdl)String url = "http://192.168.0.161:8080/MyService/services/Student";//生成web服务调用对象try {IStudent is = (IStudent)factory.create(service, url);//增加方法boolean b = is.add(new Student("1001","李文超","男","18"));if(b){System.out.println("增加成功");}else{System.out.println("增加失败");}//查询方法Student student = is.find("1001");System.out.println(student.toString());} catch (MalformedURLException e) {e.printStackTrace();}}}/*打印结果增加成功学号: 1001姓名: 李文超性别: 男年龄: 18*/


0 0
原创粉丝点击