日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java编写一个WebService并在Tomcat上发布

發(fā)布時間:2025/3/11 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java编写一个WebService并在Tomcat上发布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本例采用Myeclipse 2016 CI 6,JDK1.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 ResultService<E> {public ArrayList<E> getResultInfo() throws SQLException;@WebMethodpublic String getJsonResultInfo(); }

編寫四個JavaBean實體類用于返回泛型ArrayList<E>類型:?

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 ResultService<Employee>{private ArrayList<Employee> employees;private Log log = LogFactory.getLog(EmployeeServiceImpl.class.getName());@Overridepublic ArrayList<Employee> 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 {Json<Employee> deJson = new Json<Employee>();//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 Json<E>{public String JsonStr(ArrayList<E> Lists){return JSONArray.fromObject(Lists).toString();} }

編寫ServicePublish類,里面有個main函數,用于本地發(fā)布測試。?

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目錄下,創(chuàng)建sun-jaxws.xml配置文件,內容如下圖所示:

然后還是在web項目的web-info目錄下,創(chuàng)建web.xml配置文件,內容下圖所示:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>BPMUserService</display-name><listener><listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> </listener><servlet><servlet-name>EmployeeServiceImpl</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>EmployeeServiceImpl</servlet-name><url-pattern>/EmployeeServiceImpl</url-pattern> </servlet-mapping><servlet-mapping><servlet-name>EmployeeServiceImpl</servlet-name><url-pattern>/CompanyServiceImpl</url-pattern> </servlet-mapping><servlet-mapping><servlet-name>EmployeeServiceImpl</servlet-name><url-pattern>/DeptServiceImpl</url-pattern> </servlet-mapping><servlet-mapping><servlet-name>EmployeeServiceImpl</servlet-name><url-pattern>/DeptLeaderServiceImpl</url-pattern> </servlet-mapping></web-app>

?

右鍵點擊項目,將整個web項目導出為war包,如下圖所示:

? ? ? ? ??

?

選擇導出路徑,還可以選擇覆蓋原文件:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???

將war包放入Tomcat的webapps文件夾下,如下圖所示:

? ? ? ? ? ? ??

?

因為服務器中,默認的8080端口號已經被占用,所以我需要修改Tomcat默認的端口號,?在Tomcat的目錄結構下找到conf文件夾,里面有個server.xml文件。

修改為8090端口,如下圖所示:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

啟動Tomcat,并輸入Url,Url是地址+web項目名稱+服務名。即可訪問服務:

總結

以上是生活随笔為你收集整理的Java编写一个WebService并在Tomcat上发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。