Ⅰ 如何在Glassfish上部署web應用
一,開發工具的選擇
java
EE,或者是JSF應用開發,Netbeans和Glassfish是最好的搭配選擇,前者對於後者有非常好的支持。但要注意netbeans的版
本,5.5是不支持glassfish v2的。而netbeans6還很不穩定,所以現階段最好的版本是netbeans5.5.1。
關於Netbeans下開發Java EE應用,官方有文檔介紹:Java EE 應用程序相關教程,這里主要介紹一下生產環境中web應用在glassfish下的部署和配置
二,下載安裝Glassfish V2
1)下載Glassfish v2並解壓縮。下載完畢後,執行以下命令:
java -Xmx256m -jar glassfish_filename.jar
點擊接受彈出的協議後(這里sun比較無聊啊,所有軟體都是,明明一個普通壓縮包,非壓成jar讓你看一下協議才行),glassfish會解壓到一個名為glassfish的目錄里。
2) 修改埠
glassfish是通過ant來安裝的,安裝腳本在setup.xml下,在裡面可以修改一些配置,比如埠等等。在setup.xml中主要有以下設置:
xml 代碼
﹤propertyname="domain.name"value="domain1"/﹥域名
﹤propertyname="instance.name"value="server"/﹥
﹤propertyname="admin.user"value="admin"/﹥管理員用戶名
﹤propertyname="admin.password"value="adminadmin"/﹥管理員密碼
﹤propertyname="admin.port"value="4848"/﹥管理平台埠
﹤propertyname="instance.port"value="8080"/﹥實例埠,也就是通過這個埠來訪問web應用
﹤propertyname="orb.port"value="3700"/﹥
﹤propertyname="imq.port"value="7676"/﹥
﹤propertyname="https.port"value="8181"/﹥https埠
根據需要修改以上設置,執行:ant -f setup.xml,如果系統沒有安裝ant,在glassfish\lib\ant下有一個ant1.6版。安裝結束後,進入glassfish/bin下,在控制台執行下面命令啟動glassfish:
asadmin start-domain domain1 // domain1是上面設置的domain.name,系統默認domain1
啟動結束後,進入http://localhost:8080測試是否已經正確啟動
asadmin stop-domain domain1 //停止伺服器
三,部署web應用
有三種方式,可以直接將war或ear放在glassfish/domain/autodeploy目錄下,glassfish啟動後會自動部署。
第二是通過命令asadmin deploy部署應用, 另外 asadmin updeploy 卸載應用。通過asadmin deploy
--help 和 asadmin undeploy --help 獲得更多幫助。
第三是通過我推薦的方式,通過glassfish管理控制台進入http://localhost:4848,默認用戶admin,密碼adminadmin。打開後看到如下界面:
進入左側菜單, Applications -> Web
Applications,在列表中可以看到已經部署的應用,如要部署新應用,點擊deploy按鈕,選擇本地的war,設定好context
path,點擊OK,無論部署成功或失敗,都會看到相應的信息提示
註:通過這種方式,可以進行遠程部署,只要打開目標伺服器上的管理控制台,選擇一個本地的war,就可以快速的部署到遠程伺服器上,非常方便,這也是推薦的原因。對於EJB應用,在Enterprise Applications下部署,方法同上
四,配置jdbc數據源
對於Java EE應用,經常需要事先設定數據源,否則部署時會報javax.naming.NameNotFoundException
配置方法是進入Resources -> JDBC,會看到JDBC Resources和Connection pools
先設定Connection
pools,以MySql為例,點擊New,命名為MySqlPools,ResourceType選擇
javax.sql.ConnectionPoolDataSource,Database
vendor肯定選擇mysql,然後點擊next進入下一頁面。最主要的是設定Additional
Properties,也就是jdbc連接配置,設定好url, user,
password,其他的保持默認值,也可以根據需要自己添加屬性。設定好連接池後,接著設定JDBC
Resources,新建一個JDBC,名稱要和你的web應用里的持久化單元採用的數據源的名稱一致。
然後再次部署web應用,就會正常運行了。
Ⅱ resin怎麼發布war文件
1、拷貝webapps發布法:
拷貝你的war文件到webapps下面
找到resin.xml文件,在web-app-deploy配置path
<resin xmlns="http://caucho.com/ns/resin">
<cluster id="">
...
<host id="">
<web-app-deploy path="webapps"
expand-preserve-fileset="WEB-INF/work/**"/>
</host>
</cluster>
</resin>
2、命令行發布方法:
unix> resinctl deploy xxx.war
Ⅲ javaWeb工程如何發布到網路上 用什麼web伺服器
JDK 1.4.2 + Myeclipse 6.0(實在經不起誘惑,嘗嘗鮮) + Tomcat 5.0.28 + AXIS 1.4。 AXIS 1.4包可以在http://ws.apache.org/axis/ 找到。 假設所有的環境你已經搭好,並且AXIS包也已經下好了。OK, Here we go~
解壓axis-bin-1_4.zip這個包可以看到webapps目錄,雙擊進入把裡面的AXIS文件夾拷到 %TOMCAT_HOME%\webapps目錄下,之後拷貝activation.jar、mail.jar、tools.jar到% TOMCAT_HOME%\webapps\axis\WEB-INF\lib目錄下。啟動tomcat,訪問http://localhost:8080/axis/happyaxis.jsp 如果訪問成功,恭喜你!基本的配置你已經做完了。
PS:此處的%TOMCAT_HOME%指的是Tomcat的安裝目錄,至於那另外的三個jar包,J2EE 1.4庫里就能找的到。
現在來說一下最關鍵的Webservice的發布。AXIS提供了兩種發布方式,一種是即時發布(Instant Deployment),另外一種是定製發布(Custom Deployment)。即時發布提供了一種非常簡單的webservice的發布方式,但是其中限制太多,因此在實際的開發中定製發布才是首選。這里也將會以定製發布為重點來介紹。
1.即時發布 JWS (Java Web Service) Files - Instant Deployment
即時發布提供了一種非常簡單發布方式,發布者只要有Java源代碼(也就是.java文件),然後把其後綴名改成jws(也就是 java web service的縮寫)拷貝到%TOMCAT_HOME%\webapps\axis目錄下即完成了所有的發布工作。AXIS的編譯引擎會處理接下來的所有事情。下面是一段示例代碼:
java 代碼
1. public class HelloAXIS {
2.
3. public String Hello(String name){
4. return "AXIS say hello to " + name;
5. }
6. }
把 HelloAXIS.java 文件改成 HelloAXIS.jws 然後拷貝到%TOMCAT_HOME%\webapps\axis目錄下,啟動Tomcat之後訪問 http://localhost:8080/axis/HelloAXIS.jws 如果能看到 Click to see the WSDL這個超鏈接就說明已經發布成功了,點擊進去就可以看到這個Webservice的WSDL描述文件。server端的發布已經完成了,接下來就是編寫Client端測試代碼了。
java 代碼
1. package com.chnic.test;
2.
3. import java.net.URL;
4.
5. import javax.xml.namespace.QName;
6.
7. import org.apache.axis.client.Call;
8. import org.apache.axis.client.Service;
9.
10. public class Test {
11.
12. public static void main(String[] args) throws Exception{
13. String targetEendPoint = "http://localhost:8080/axis/HelloAXIS.jws" ;
14. Service service = new Service();
15. Call call = (Call) service.createCall();
16. call.setOperationName( new QName(targetEendPoint, "Hello" ));
17. call.setTargetEndpointAddress( new URL(targetEendPoint));
18. String result = (String) call.invoke( new Object[]{ "Robert" });
19. System.out.println(result);
20. }
21. }
測試代碼很簡單,如果熟悉java反射機制的朋友不用兩分鍾就能看明白。運行後客戶端控制台出現 AXIS say hello Robert。測試成功。果然很簡單吧。不過在這簡單背後卻是以犧牲靈活性為代價的。假如你現在手裡只有.class 或者一個jar包,jws就不再能滿足你的需求了,最要命的就是即時發布不支持帶包的類,這點AXIS的用戶手冊上寫的也很明白。
Important: JWS web services are intended for simple web services. You cannot use packages in the pages, and as the code is compiled at run time you can not find out about errors until after deployment. Proction quality web services should use Java classes with custom deployment.
2.定製發布 Custom Deployment - Introcing WSDD
比起即時發布定製發布更加煩瑣也更復雜,但是換來的卻是更大的靈活性,因此在實際項目中定製發布還是不二的選擇。定製發布需要你自己編寫一個WSDD (Web Service Deployment Descriptor)文件,這個東東類似與XML稍後會做出介紹。廢話不多說,我們來看代碼:
java 代碼
1. package com.chnic.webservice;
2.
3. public class HelloWorld {
4.
5. public HelloWorld(){
6.
7. }
8.
9. public String hello(String str){
10. return "Hello " + str;
11. }
12.
13. public int add( int a, int b){
14. return a + b;
15. }
16.
17. }
一個帶包的很簡單的類,在eclipse下編譯後按照包名拷到 %TOMCAT_HOME%\webapps\axis\WEB-INF\classes 目錄下。以這個類為例,拷貝完之後這個HelloWorld.class的路徑就是 %TOMCAT_HOME%\webapps\axis\WEB-INF\classes\com\chnic\webservice。PS: 如果嫌這樣太麻煩,可以另外建一個Java Web工程用myeclipse的發布工具發布到Tomcat之後,整體一次性拷貝到websericve的工程中。
接下來就需要編寫發布文件deploy.wsdd。到%TOMCAT_HOME%\webapps\axis\WEB-INF 目錄下建立這個文件並在其中添加如下內容:
xml 代碼
1. < deployment xmlns = http://xml.apache.org/axis/wsdd/
2. xmlns:java = "http://xml.apache.org/axis/wsdd/providers/java" >
3.
4. < service name = "HelloWorld" provider = "java:RPC" >
5. < parameter name = "className" value = "com.chnic.webservice.HelloWorld" />
6. < parameter name = "allowedMethods" value = "*" />
7. </ service >
8. </ deployment >
簡單的介紹下各個節點的含義,"HelloWorld"當然是這個webservice的名字,後面緊跟的java:RPC指的是服務類型。這里一共有有4種類型,分別是:RPC, Document, Wrapped 和 Message。有興趣可以看下 org.apache.axis.providers這個包和子包下面的類的API文檔。之後的parameter節點第一個當然是指出具體的類,第二個從字面上也很好理解:允許調用的方法。這里的配置告訴引擎可以調用所有的public方法,當然你也可以自己指定。
編寫完配置發布文件之後,cmd打開windows的控制台,進入%TOMCAT_HOME%\webapps\axis\WEB-INF目錄下鍵入如下命令
1. java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
之後控制台返回Processing file deploy.wsdd 和 Done processing 這兩段話即說明發布成功。(此時會在同級目錄生成一個server-config.wsdd文件 )在這里的AdminClient是AXIS提供的一個客戶端管理工具。至於java.ext.dirs的含義可以去了解一下classloader和JVM類裝載機制方面的知識,在這里就不多解釋。 還有一點要注意的是在發布的時候Tomcat服務必須處於啟動狀態,否則就會拋出一堆無法連接的異常信息。發布成功之後你可以通過訪問 http://localhost:8080/axis/servlet/AxisServlet 來查看你所有的定製發布的服務。
客戶端測試代碼
1. String targetEendPoint = "http://localhost:8080/axis/services/HelloWorld" ;
2. Service service = new Service();
3. Call call = (Call) service.createCall();
4. call.setTargetEndpointAddress( new URL(targetEendPoint));
5.
6. call.setOperationName( new QName(targetEendPoint, "hello" ));
7. String result = (String) call.invoke( new Object[]{ "Robert" });
8. System.out.println(result);
9.
10. call.setOperationName( new QName(targetEendPoint, "add" ));
11. Integer res = (Integer) call.invoke( new Object[]{ new Integer( 1 ), new Integer( 2 )});
12. System.out.println( "The result is: " + res);
運行測試代碼,控制台顯示 Hello Robert 和 The result is: 3 這兩句話,說明發布成功。仔細觀察下發現其實除了那個targetEndpoint 之外,即時發布和定製發布的客戶端調用代碼基本上都是一樣的。定製發布的URL可以在WSDL文件里找到。
Ⅳ 如何將iis6伺服器的網站批量遷移到iis7中
要使用一個微軟出的免費的一個基於命令行的遷移工具Microsoft Web Deployment Tool,目前這個工具還是Tech Preview 1版,並只支持英文版的IIS6。換言之,如果您的IIS6伺服器是Windows server 2003中文版的話,很遺憾,您還不能用這個版本的工具來遷移您的IIS6網站到IIS7中。 安裝後,可以在C:/Program Files/Microsoft Web Deploy目錄找到msdeploy.exe
接下來簡單簡單介紹msploy的命令參數:
MSDEPLOY <-verb:<name>> <-source:<object>> [-dest:<object>] [args ...]
-verb:表示要執行動作,比如GetDependencies參數檢查被遷移網站所依賴的iis組件,migrate參數將網站遷移到IIS7中。
-source:要進行操作源對象,比如IIS6伺服器上的某個網站,或整個 IIS6伺服器
-dest:要進行操作的目標對象,比如將IIS6伺服器的某個網站備份為某地文件,以便IIS7導入。
更詳細的參數說明請運行msdeploy /?來查看
Ⅳ 如何使用web deploy遷移網站
微軟官方的解釋:Web 部署工具可簡化 IIS Web 伺服器、Web 應用程序和網站的遷移、管理和部署工作。。
Web 部署工具可簡化 IIS Web 伺服器、Web 應用程序和網站的遷移、管理和部署工作。管理員可以通過命令行腳本運行 Web
部署工具,同步 IIS 6.0、IIS 7.0 和 IIS 8.0 伺服器或將 IIS 6.0 和 IIS 7.0 伺服器遷移到 IIS
8.0。利用 Web 部署工具,管理員和委派的用戶還可使用 IIS 管理器將 ASP.NET 和 PHP 應用程序部署到 IIS 7.0
和更高版本的伺服器。
Ⅵ 怎麼將web應用部署到tomcat中,tomcat是否需要配置環境變數
Tomcat部署Web應用方法總結
在Tomcat中部署Java Web應用程序有兩種方式:靜態部署和動態部署。
在下文中$CATALINA_HOME指的是Tomcat根目錄。
一、靜態部署
靜態部署指的是我們在伺服器啟動之前部署我們的程序,只有當伺服器啟動之後,我們的Web應用程序才能訪問。
以下3種方式都可以部署:(以PetWeb項目為例說明,PetWeb目錄假設是F:/PetWeb)
1.利用Tomcat自動部署
將PetWeb目錄拷貝到$CATALINA_HOME/webapps下,然後啟動伺服器就可以了,Tomcat啟動時將自動載入應用。
訪問地址如下:http://localhost:8080/PetWeb/
這種方式比較簡單,但是web應用程序必須在webapps目錄下。Tomcat的Webapps目錄是Tomcat默認的應用目錄,當伺服器啟動時,會載入所有這個目錄下的應用。
2.修改Server.xml文件部署
這種方式可以不必將PetWeb目錄拷貝到webapps下,直接在F:/部署。方法如下,更改$CATALINA_HOME/conf/server.xml文件,
找到以下內容:
Xml代碼:
1. <Context path
="/Pet" reloadable ="false" docBase
="F:/PetWeb" workDir ="d:/Mywebapps/emp" />
path:是訪問時的根地址,表示訪問的路徑;如上述例子中,訪問該應用程序地址如下:http://localhost:8080/Pet/
reloadable:表示可以在運行時在classes與lib文件夾下自動載入類包。其中reloadable="false"表示當應用程序中的內容發生更改之後伺服器不會自動載入,這個屬性在開發階段通常都設為true,方便開發,在發布階段應該設置為false,提高應用程序的訪問速度。
docbase:表示應用程序的路徑,注意斜杠的方向「/」。
docBase可以使用絕對路徑,也可以使用相對路徑,相對路徑相對於webapps。
workdir:表示緩存文件的放置地址
3.增加自定義web部署文件(推薦使用,不需要重啟Tomcat
)
這種方式和方法2差不多,但不是在Server.xml文件中添加Context標簽,而是在$CATALINA_HOME/conf/Catalina/localhost中添加一個xml文件,如Pet.xml.在Tomcat安裝目錄conf/Catalina
/localhost下,裡面有Tomcat自帶的三個應用,隨意復制其中的一個XML文件,然後修改docbase指向你自己的應用程序,並把文件名改名,各參數參見方法2中的<Context>標簽的參數,或者你也可以自己新建一個XML文件。(注意此文件名將作為Context中的path屬性值,不管文件里的path屬性值如何設置也是無效的
),將以下內容復制過去,修改相應路徑即可。
Xml代碼:
1. <Context path
="/Pet" docBase ="F:/PetWeb"
2. debug ="0"
privileged ="true" reloadable ="false"
>
3. </Context>
訪問地址如下:http://localhost:8080/Pet/
註: Web應用以.war文件的形式部署
可以將JSP程序打包成一個war包放在目錄下,伺服器會自動解開這個war包,並在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個Web程序的所有內容進行壓縮得到。
我們剛才是將PetWeb文件夾部署在了伺服器中,我們知道可以將Web應用程序的內容打成.war包,然後在部署在伺服器上。打包請參考如下步驟:
1、打開命令提示符(cmd)
2、設置jdk環境變數
3、在命令提示符中進入項目文件夾F:/PetWeb後,鍵入如下命令:jar cvfPet.war */ .
(注意最後有個「. 」)。這樣在F:/PetWeb下應該有Pet.war文件。(也可以打包到指定的地方,命令如下:jar
cvf d:/Pet.war */.)
部署Pet.war文件非常簡單,將剛才xml文件中的docBase
="F:/PetWeb"更改為docBase ="F:/Pet.war"或者直接將其拷貝到webapps目錄下就可以。然後重新啟動伺服器就可以將Pet.war部署為一個Web應用程序了。
如果你夠細心的話你會發現,伺服器將Pet.war文件解開,並且在webapps下面又生成了一個Pet文件夾,然後把Pet.war的內容拷貝到裡面去了。我們可以通過以下方式取消自動解壓縮,將xml配置文件中的unpackWAR屬性設置為"false"
即可。
二、動態部署
動態部署是指可以在伺服器啟動之後部署web應用程序,而不用重新啟動伺服器。動態部署要用到伺服器提供的manager.war文件,如果在$CATALINA_HOME/webapps/下沒有該文件,你必須去重新下載tomcat,否則不能完成以下的功能。要想使用該管理程序必須首先編輯$CATALINA_HOME/conf/tomcat-users.xml文件,內容如下:(關於這個文件的更多內容,請參考
Java Web應用程序的安全模型二)
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<user username="coresun" password="coresun"roles="manager"/>
<user username="tomcat" password="tomcat"roles="tomcat"/>
<user username="both" password="tomcat"roles="tomcat,role1"/>
<user username="role1" password="tomcat"roles="role1"/>
</tomcat-users>
然後在瀏覽器中鍵入如下地址:http://localhost:8080/
,應該看到一個加菲貓了吧。點擊左邊的Tomcat Manager鏈接,提示輸入用戶名和密碼,本文都是coresun,然後可以看到以下頁面:
(1)Context Path(option):中輸入/Pet
(2)XML Configration file URL中要指定一個.xml文件,比如我們在F:/下建立一個Pet.xml文件,內容如下:<Context reloadable
="false" / >。docBase不用寫了,因為要在下一個文本框中填入。或者更簡單點,這個文本框什麼都不填。
(3)WAR or Directory URL:中鍵入F:/PetWet或者F:/Pet.war都可以,然後點擊Deploy按鈕,看看上面是不是已經看到了你web應用程序,名字就是你ContextPath(option):中的名字。
(4)如果你部署.war文件還有更加簡單的方式,下面還有個Select WAR file upload點擊瀏覽選擇.war文件,然後點擊Deploy也可以。
讓tomcat只運行conf/server.xml中指定的web應用
可以有以下2種辦法:
實現一:
1)將要部署的WEB應用放在webapps以外的路徑,
並在server.xml相應的Context 中的docBase指定.
2)刪除webapps中的所有文件夾,
以及conf/catalina/localhost下所有xml文件.
注: webapps是server.xml中的Host 元素的appBase屬性的值.
實現二:
修改server.xml中Host 元素的屬性,
添加或修改:
deployXML ="false"
deployOnStartup ="false"
autoDeploy ="false"
含義:
deployXML ="false"
: 不部署conf/catalina/localhost下的xml相應的WEB應用
deployOnStartup ="false"
:tomcat啟動時,
不部署webapps下的所有web應用
autoDeploy ="false"
:避免tomcat在掃描改動時,
再次把webapps下的web應用給部署進來.
註:
Tomcat中webapps目錄下不能直接存放網頁格式的文件,否則無法訪問到該文件,必須有子目錄才能訪問該網頁文件。
例如:我們直接將index.html放在webapps目錄中,通過瀏覽器http://localhost:8080/index.html是無法訪問到index.html的。而必須要webapps/petweb/index.html才可以通過http://localhost:8080/petweb/index.html訪問到index.html頁面。
Ⅶ 如何把java的web工程發布到另外一台伺服器上
JDK 1.4.2 + Myeclipse 6.0(實在經不起誘惑,嘗嘗鮮) + Tomcat 5.0.28 + AXIS 1.4。 AXIS 1.4包可以在 找到。 假設所有的環境你已經搭好,並且AXIS包也已經下好了。OK, Here we go~
解壓axis-bin-1_4.zip這個包可以看到webapps目錄,雙擊進入把裡面的AXIS文件夾拷到 %TOMCAT_HOME%\webapps目錄下,之後拷貝activation.jar、mail.jar、tools.jar到% TOMCAT_HOME%\webapps\axis\WEB-INF\lib目錄下。啟動tomcat,訪問 如果訪問成功,恭喜你!基本的配置你已經做完了。
PS:此處的%TOMCAT_HOME%指的是Tomcat的安裝目錄,至於那另外的三個jar包,J2EE 1.4庫里就能找的到。
現在來說一下最關鍵的Webservice的發布。AXIS提供了兩種發布方式,一種是即時發布(Instant Deployment),另外一種是定製發布(Custom Deployment)。即時發布提供了一種非常簡單的webservice的發布方式,但是其中限制太多,因此在實際的開發中定製發布才是首選。這里也將會以定製發布為重點來介紹。
1.即時發布 JWS (Java Web Service) Files - Instant Deployment
即時發布提供了一種非常簡單發布方式,發布者只要有Java源代碼(也就是.java文件),然後把其後綴名改成jws(也就是 java web service的縮寫)拷貝到%TOMCAT_HOME%\webapps\axis目錄下即完成了所有的發布工作。AXIS的編譯引擎會處理接下來的所有事情。下面是一段示例代碼:
java 代碼
1. public class HelloAXIS {
2.
3. public String Hello(String name){
4. return "AXIS say hello to " + name;
5. }
6. }
把 HelloAXIS.java 文件改成 HelloAXIS.jws 然後拷貝到%TOMCAT_HOME%\webapps\axis目錄下,啟動Tomcat之後訪問 如果能看到 Click to see the WSDL這個超鏈接就說明已經發布成功了,點擊進去就可以看到這個Webservice的WSDL描述文件。server端的發布已經完成了,接下來就是編寫Client端測試代碼了。
java 代碼
1. package com.chnic.test;
2.
3. import java.net.URL;
4.
5. import javax.xml.namespace.QName;
6.
7. import org.apache.axis.client.Call;
8. import org.apache.axis.client.Service;
9.
10. public class Test {
11.
12. public static void main(String[] args) throws Exception{
13. String targetEendPoint = "" ;
14. Service service = new Service();
15. Call call = (Call) service.createCall();
16. call.setOperationName( new QName(targetEendPoint, "Hello" ));
17. call.setTargetEndpointAddress( new URL(targetEendPoint));
18. String result = (String) call.invoke( new Object[]);
19. System.out.println(result);
20. }
21. }
測試代碼很簡單,如果熟悉java反射機制的朋友不用兩分鍾就能看明白。運行後客戶端控制台出現 AXIS say hello Robert。測試成功。果然很簡單吧。不過在這簡單背後卻是以犧牲靈活性為代價的。假如你現在手裡只有.class 或者一個jar包,jws就不再能滿足你的需求了,最要命的就是即時發布不支持帶包的類,這點AXIS的用戶手冊上寫的也很明白。
Important: JWS web services are intended for simple web services. You cannot use packages in the pages, and as the code is compiled at run time you can not find out about errors until after deployment. Proction quality web services should use Java classes with custom deployment.
2.定製發布 Custom Deployment - Introcing WSDD
比起即時發布定製發布更加煩瑣也更復雜,但是換來的卻是更大的靈活性,因此在實際項目中定製發布還是不二的選擇。定製發布需要你自己編寫一個WSDD (Web Service Deployment Descriptor)文件,這個東東類似與XML稍後會做出介紹。廢話不多說,我們來看代碼:
java 代碼
1. package com.chnic.webservice;
2.
3. public class HelloWorld {
4.
5. public HelloWorld(){
6.
7. }
8.
9. public String hello(String str){
10. return "Hello " + str;
11. }
12.
13. public int add( int a, int b){
14. return a + b;
15. }
16.
17. }
一個帶包的很簡單的類,在eclipse下編譯後按照包名拷到 %TOMCAT_HOME%\webapps\axis\WEB-INF\classes 目錄下。以這個類為例,拷貝完之後這個HelloWorld.class的路徑就是 %TOMCAT_HOME%\webapps\axis\WEB-INF\classes\com\chnic\webservice。PS: 如果嫌這樣太麻煩,可以另外建一個Java Web工程用myeclipse的發布工具發布到Tomcat之後,整體一次性拷貝到websericve的工程中。
接下來就需要編寫發布文件deploy.wsdd。到%TOMCAT_HOME%\webapps\axis\WEB-INF 目錄下建立這個文件並在其中添加如下內容:
xml 代碼
1. < deployment xmlns =
2. xmlns:java = "" >
3.
4. < service name = "HelloWorld" provider = "java:RPC" >
5. < parameter name = "className" value = "com.chnic.webservice.HelloWorld" />
6. < parameter name = "allowedMethods" value = "*" />
7. </ service >
8. </ deployment >
簡單的介紹下各個節點的含義,"HelloWorld"當然是這個webservice的名字,後面緊跟的java:RPC指的是服務類型。這里一共有有4種類型,分別是:RPC, Document, Wrapped 和 Message。有興趣可以看下 org.apache.axis.providers這個包和子包下面的類的API文檔。之後的parameter節點第一個當然是指出具體的類,第二個從字面上也很好理解:允許調用的方法。這里的配置告訴引擎可以調用所有的public方法,當然你也可以自己指定。
編寫完配置發布文件之後,cmd打開windows的控制台,進入%TOMCAT_HOME%\webapps\axis\WEB-INF目錄下鍵入如下命令
1. java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
之後控制台返回Processing file deploy.wsdd 和 Done processing 這兩段話即說明發布成功。(此時會在同級目錄生成一個server-config.wsdd文件 )在這里的AdminClient是AXIS提供的一個客戶端管理工具。至於java.ext.dirs的含義可以去了解一下classloader和JVM類裝載機制方面的知識,在這里就不多解釋。 還有一點要注意的是在發布的時候Tomcat服務必須處於啟動狀態,否則就會拋出一堆無法連接的異常信息。發布成功之後你可以通過訪問 來查看你所有的定製發布的服務。
客戶端測試代碼
1. String targetEendPoint = "" ;
2. Service service = new Service();
3. Call call = (Call) service.createCall();
4. call.setTargetEndpointAddress( new URL(targetEendPoint));
5.
6. call.setOperationName( new QName(targetEendPoint, "hello" ));
7. String result = (String) call.invoke( new Object[]);
8. System.out.println(result);
9.
10. call.setOperationName( new QName(targetEendPoint, "add" ));
11. Integer res = (Integer) call.invoke( new Object[]);
12. System.out.println( "The result is: " + res);
運行測試代碼,控制台顯示 Hello Robert 和 The result is: 3 這兩句話,說明發布成功。仔細觀察下發現其實除了那個targetEndpoint 之外,即時發布和定製發布的客戶端調用代碼基本上都是一樣的。定製發布的URL可以在WSDL文件里找到。
Ⅷ 如何將Web應用打包成.war文件
將Web應用打包成WAR文件的方法:
(1)在命令行中運用Jar命令
假定有一個Web應用:C:/myHome
myHome/WEB-INF/
myHome/files/
myHome/image/
myHome/src/
myHome/index.jsp
在命令行窗口下執行如下命令:
C:/cd myHome
C:/myHome/jar cvf myhome.war *.*/ .
解釋:jar cvf[A-war包名].
war[B-資源文件及文件夾] [C-將要生成war包的目標文件夾]
*.*/(B-)代表當前目錄(C:/myHome)下的所有文件及文件夾。.
(C-)表明將要在當前目錄中生成war包。
操作完成後,找到C:/myHome下新生成的myhome.war,將其拷入TOMCAT_HOME/webapps/下。然後啟動Tomcat即可。
(2)利用IDE工具打包,如Eclipse
右鍵點擊你想打包的文件或者項目,選擇export,然後是選擇J2EE,在彈出的對話框中選擇WAR文件 ,上面有許多選項,還可以選EAR,JAR,個人覺得這個很方便的!
(3)利用ANT工具打包
首先配置好build.xml文件,然後dos下輸入ant ...war
選中你的web工程,lomboz J2ee---Deploy Mole,就可以把Web工程發布並打包了!
Ⅸ 如何將IIS6伺服器的網站批量遷移到IIS7中
你好,我來為你解答!
要使用一個微軟的免費的一個基於命令行的遷移工具Microsoft Web Deployment Tool,目前這個工具還是Tech Preview 1版,並只支持英文版的IIS。換言之,如果您的IIS6伺服器是Windows server 2003中文版的話,很遺憾,您還不能用這個版本的工具來遷移您的IIS6網站到IIS7中。 安裝後,可以在C:/Program Files/Microsoft Web Deploy目錄找到msdeploy.exe
接下來簡單簡單介紹msploy的命令參數:
MSDEPLOY <-verb:<name>> <-source:<object>> [-dest:<object>] [args ...]
-verb:表示要執行動作,比如GetDependencies參數檢查被遷移網站所依賴的iis組件,migrate參數將網站遷移到IIS7中。
-source:要進行操作源對象,比如IIS6伺服器上的某個網站,或整個 IIS6伺服器
-dest:要進行操作的目標對象,比如將IIS6伺服器的某個網站備份為某地文件,以便IIS7導入。
更詳細的參數說明請運行msdeploy /?來查看
我用的是小鳥雲伺服器,這些都是他們工程師告訴我的。
希望能幫到你,望採納!