东营网站制作公司,只会网站开发能创业吗,找个网站这么难2021,柳州网站建设公本例采用Myeclipse 2016 CI 6#xff0c;JDK1.8 。新建一个Web Service Project。 选择如下设置#xff1a; 在src目录下建个包: 编写一个接口#xff0c;其中一个方法返回ArrayList#xff0c;另一个方法返回JSON#xff1a;
package Services;
import java.sql.SQLExce…本例采用Myeclipse 2016 CI 6JDK1.8 。新建一个Web Service Project。 选择如下设置 在src目录下建个包: 编写一个接口其中一个方法返回ArrayList另一个方法返回JSON
package Services;
import java.sql.SQLException;
import java.util.ArrayList;import javax.jws.WebMethod;
import javax.jws.WebService;WebService
public interface ResultServiceE {public ArrayListE getResultInfo() throws SQLException;WebMethodpublic String getJsonResultInfo();
}
编写四个JavaBean实体类用于返回泛型ArrayListE类型
package Services;public class Employee { private String WORKCODE;private String LASTNAME;private Long SUBCOMPANYID1;private Long DEPARTMENTID1;private String JOBTITLEMARK;private String JOBCALL;private String JOBLEVEL;private long MANAGERID;private String STATUS;private String LOCATIONNAME;private String MOBILE;private String MOBILECALL;private String TELEPHONE;private String STARTDATE;private String LASTMODDATE;//set and get.......
}package Services;public class Company {private long ID;private String SUBCOMPANYNAME;//get and set.......
} package Services;public class Dept {private long ID;private String DEPARTMENTNAME;private long SUPDEPID;private long SUBCOMPANYID1;private String DEPARTMENTMARK;private String CANCELED;//get and set......
}package Services;public class DeptLeader {private long BMFZR;private long BM;//get and set....
}编写四个子类实现上面这个接口这里就只举例一个子类吧其他三个模式一样
package Services;import java.sql.SQLException;
import java.util.ArrayList;
import javax.jws.WebService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;WebService
public class EmployeeServiceImpl implements ResultServiceEmployee{private ArrayListEmployee employees;private Log log LogFactory.getLog(EmployeeServiceImpl.class.getName());Overridepublic ArrayListEmployee getResultInfo() throws SQLException {// TODO Auto-generated method stub PropertiesServiceImpl pro new PropertiesServiceImpl();//配置文件信息读取类String conn pro.getConn();String user pro.getUser();String password pro.getPassword();String table pro.getViewEmployee();JdbcUtils cs new JdbcUtils(conn, user, password);//JDBC处理类String sqlString SELECT * FROM table;log.info(SQl: sqlString);employees cs.queryEmployeeResult(sqlString); return employees;}Overridepublic String getJsonResultInfo() {// TODO Auto-generated method stubString str ;try {JsonEmployee deJson new JsonEmployee();//JSON处理类str deJson.JsonStr(this.getResultInfo());} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return str;}
}其中JSON类的代码如下图所示该类能将ArrayList转化为Json字符串如下图所示使用JSONArray需要引用几个jar包点击这里下载 json-lib jar包
package Services;
import java.util.ArrayList;
import net.sf.json.JSONArray;public class JsonE{public String JsonStr(ArrayListE Lists){return JSONArray.fromObject(Lists).toString();}
}编写ServicePublish类里面有个main函数用于本地发布测试。
package Services;
import javax.xml.ws.Endpoint;public class ServicePublish { public static void main(String[] args){PropertiesServiceImpl pro new PropertiesServiceImpl();String baseAddress pro.getUrl();String employeeAddress baseAddress Service/Employee;String companyAddress baseAddress Service/Company;String deptAddress baseAddress Service/Dept;String deptLeaderAddress baseAddress Service/DeptLeader;Object implementorEmployee new EmployeeServiceImpl();Object implementorCompany new CompanyServiceImpl();Object implementorDept new DeptServiceImpl();Object implementorDeptLeader new DeptLeaderServiceImpl();Endpoint.publish(employeeAddress, implementorEmployee); Endpoint.publish(companyAddress, implementorCompany);Endpoint.publish(deptAddress, implementorDept);Endpoint.publish(deptLeaderAddress, implementorDeptLeader);}
}右键选择Run As ——Java Application如下图所示进行本地编译测试 能出现XML说明成功了到此为止本地运行成功 下面将此WebService部署到TomCat上
首先需要添加一些jar包总共25个将这25个jar包添加到Tomcat路径的lib文件夹下。25个jar包的目录如下图所示点击这里下载这25个jar包 在web项目的WEB-INF目录下创建sun-jaxws.xml配置文件内容如下图所示 然后还是在web项目的web-info目录下创建web.xml配置文件内容下图所示
?xml version1.0 encodingUTF-8?web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://java.sun.com/xml/ns/javaee xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd idWebApp_ID version3.0display-nameBPMUserService/display-namelistenerlistener-classcom.sun.xml.ws.transport.http.servlet.WSServletContextListener/listener-class
/listenerservletservlet-nameEmployeeServiceImpl/servlet-nameservlet-classcom.sun.xml.ws.transport.http.servlet.WSServlet/servlet-classload-on-startup1/load-on-startup
/servletservlet-mappingservlet-nameEmployeeServiceImpl/servlet-nameurl-pattern/EmployeeServiceImpl/url-pattern
/servlet-mappingservlet-mappingservlet-nameEmployeeServiceImpl/servlet-nameurl-pattern/CompanyServiceImpl/url-pattern
/servlet-mappingservlet-mappingservlet-nameEmployeeServiceImpl/servlet-nameurl-pattern/DeptServiceImpl/url-pattern
/servlet-mappingservlet-mappingservlet-nameEmployeeServiceImpl/servlet-nameurl-pattern/DeptLeaderServiceImpl/url-pattern
/servlet-mapping/web-app右键点击项目将整个web项目导出为war包如下图所示 选择导出路径还可以选择覆盖原文件 将war包放入Tomcat的webapps文件夹下如下图所示 因为服务器中默认的8080端口号已经被占用所以我需要修改Tomcat默认的端口号 在Tomcat的目录结构下找到conf文件夹里面有个server.xml文件。 修改为8090端口如下图所示 启动Tomcat并输入UrlUrl是地址web项目名称服务名。即可访问服务