配置步驟:
一、 工具準備:
Eclipse3.2
Myeclipse5.0
Weblogic8.1
開發環境:
windows XP
jdk1.3
eclipse3.2.1 + myeclipse5.0
weblogic 8.1 sp2(獨自運行jdk1.4)
二、類包準備:
Qname.jar 下載地址:http://docs.codehaus.org/download/attachments/27836/qname.jar?version=1
三、 Weblogic8部署注意地方
A、 WebLogic 8 支持的是 J2EE 1.3,也就是 Servlet 2.3 規範。若在 MyEclipse 中建立 Web Project 時選擇了 J2EE 1.4[default],在部署的時候就會出現異常,提示部署描述符 web.xml 是畸形的,也就是未通過 DTD 檢驗。因爲 J2EE 1.4 使用的是 Servlet 2.4 規範,這直接體現在 web.xml 部署描述符的頭部引用中。這就是有些朋友遇到的,部署在 Tomcat 和 JBoss 中能夠運行的 JSP 程序,部署到 WebLogic 8 就無法運行的原因之一。如下圖:
Servlet 2.3 規範生成的 web.xml 頭部:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3/ /EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
...
</web-app>
Servlet 2.4 規範生成的 web.xml 頭部:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
</web-app>
B、 解決這個問題,需要將 WebLogic 升級到 9.2 版本;或者使用 J2EE 1.3。
C、 如果使用繼續使用weblogic8.1的,則需要對weblogic自帶的weblogic.jar包的xml命名包替換成:Qname.jar。否則web啓動時會報錯。服務啓動不了。
D、若在上一個問題選擇了 J2EE 1.3 進行開發後,在部署時會出現另外的異常,提示“Unsupported major.minor version 49.0”—— 又是版本問題,這次是由於 JDK 版本不支持造成的。WebLogic 8 不支持 JDK 1.5,由 JDK 1.5 編譯的程序無法部署到只支持 JDK 1.4 的服務器上運行。解決的辦法也有兩個:用 JDK 1.4 重新編譯;或者換用支持 JDK 1.5 的服務器,也就是升級到 WebLogic 9.2。
四、 開始配置:
1、 建立webservice項目時,需要選擇J2EE1.3,不能選擇J2EE1.3[default]。
2、 默認下一步。
3、 進入Project Library Configuration頁面,默認選擇MyEclipse Libraries類包。
下面提供的選擇項中,在原來的基礎上,把Xfire1.1 HTTP Client Libraries也選上。
4、 單擊“Finish”按鈕
5、 單擊“New Web Service”按鈕。建立新web服務端。
6、 進入接口定義頁面。
填完。點擊“Finish”按鈕。
7、則可以查看到“WebRoot->WEB-INF”目錄下存在web.xml文件,樣式如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<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>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
7、 進入根目錄下“Web Services”存在“webservice.xml”文件。其內容:
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>xxx</name>
<serviceClass>xxxx</serviceClass>
<implementationClass>xxxx</implementationClass>
<style>xx</style>
<use>xx</use>
<scope>xxx</scope>
</service></beans>
8、 在“WebRoot->WEB-INF->lib”目錄加入包:Qname.jar
9、 在weblogic啓動命名文件:startWeblogic.xml文件中加上該包的執行路徑。
……….
set CLASSPATH=D:/qname.jar;
…….
12、部署工程。
13、配置完成後選擇“OK”。部署成功。
14、啓動服務器器。可以在對應的IE頁面地址欄輸入:
http://loaclhost:7001/services/testservice?wsdl
如有現時xml格式的內容,則表明成功,否則需要檢查上述步驟是否出正常。