好久之前玩過的東西,昨天應(yīng)一個(gè)哥們要去,給他做一個(gè)服務(wù),只好想了又想,因?yàn)樽约簩?duì)java一知半解,只停留在照貓畫虎的層次,不過運(yùn)氣還好,加上以前碰到過很多挫折,所以配的還算順利。在csdn進(jìn)行記錄,以免忘記。
順序:
一 準(zhǔn)備
1 Eclipse3.4
2 JDK1.5
3 Tomcat 6
4 tomcat plugin v3.2.1
5 cxf開發(fā)包 2.2.5
二 配置環(huán)境
1 安裝jdk
2 copy eclipse && tomcat6 && cxf 到自己想放它們的地方(eclispe不需要安裝,tomcat從6開始也不需要install)
3 配置環(huán)境變量如下:
參考
set CXF_HOME=C:\cxf2.1
set JAVA_HOME=C:\Java\jdk1.5.0_09
set PATH=%JAVA_HOME%\bin;%CXF_HOME%\bin;%PATH%
set CLASSPATH=.;%CXF_HOME%\lib\cxf-manifest.jar;.\build\classes
4. 解壓縮tomcat plugin v3.2.1到Eclipse的plugin目錄下
三 開發(fā)過程
關(guān)于開發(fā)過程,Apache和IBM官方有很詳細(xì)的文檔,
我這里只針對(duì)過程中可能遇到的一個(gè)問題進(jìn)行總結(jié)。(之后會(huì)附上可行的源代碼)
1 Eclispe下new個(gè)新的普通java工程就可以,但是myeclipse下好像只能在建立在web項(xiàng)目中
2 暴露服務(wù)有兩種方式j(luò)axws:Endpoint和jaxws:Server兩種方式,網(wǎng)上有很詳細(xì)的解釋它們的區(qū)分,你可以任選一種
3 有的時(shí)候,eclipse會(huì)提示找不到Endpoint的說明,沒有問題,go on
4 你要部署一個(gè)項(xiàng)目到tomcat, 要寫一個(gè)xml到tomcat目錄去:
參考:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="E:\自己-CODE\JavaCode\Eclipse34_workspace\你的項(xiàng)目名稱,一定要正確,大小寫匹配"/>
建議:目錄最好用英文,否則有時(shí)候用不同編輯的時(shí)候,會(huì)出現(xiàn)二進(jìn)制無法讀取現(xiàn)象,比如上面的“自己”用記事本程序?qū)懭牒螅?/div>
Eclipse在執(zhí)行時(shí)有時(shí)會(huì)出錯(cuò)的,如果你用Eclipse打開會(huì)發(fā)現(xiàn)這個(gè)記事本打開能看的“自己”由于編碼問題可能在eclipse中不能
正常顯示,需要修改。
5 接口和類加@WebService后會(huì)暴露接口,你也可以選擇性暴露。
6 附上一個(gè)可行的代碼參考:
【1】類接口(函數(shù)名字隨便起的,和參數(shù)沒有任何關(guān)系)
package ws.cxf;
import javax.jws.WebService;
@WebService
public interface IAuthenService
{
public String ClientService(String footname,int num);
}
【2】類
/**
*
*/
package ws.cxf;
import javax.jws.WebService;
import ws.cxf.IAuthenService;
@WebService
public class AuthenService implements IAuthenService
{
private String myfootname="potatoAndTomato";
private int eatnum=1000;
public static void main(String[] args)
{
System.out.println("Hello,world!Jo 1");
}
public String ClientService(String footname, int num)
{
String result="";
if(this.myfootname.equals(footname))
{
result="你不能再吃這個(gè)了,buddy!";
}
else
{
result="你還能吃呀,強(qiáng)!";
if(num<this.eatnum)
{
result+=" 可惜,你要的已經(jīng)沒有了!";
}
else
{
result+="稍等等,一會(huì)就給你!";
}
}
return result;
}
public String getMyfootname() {
return myfootname;
}
public void setMyfootname(String myfootname) {
this.myfootname = myfootname;
}
public int getEatnum() {
return eatnum;
}
public void setEatnum(int eatnum) {
this.eatnum = eatnum;
}
}
【3】配置暴露服務(wù)xml
<!-- EatService -->
<bean id="myService2" class="ws.cxf.AuthenService">
<property name="myfootname" value="qiao"/>
<property name="eatnum" value="10"/>
</bean>
<!-- Expose EatWebService -->
<jaxws:endpoint id="eatWebService2" serviceName="AuthenSrv" address="/AccessControlDomain/Access">
<jaxws:implementor ref="myService2"/>
</jaxws:endpoint>
</beans>
【4】項(xiàng)目配置文件xml:放置在WEB-INF下
之后,你進(jìn)入tomcat manager后,就可看見自己部署的項(xiàng)目,點(diǎn)擊即可訪問其。
9 oracle的osb可以進(jìn)行類似于微軟web服務(wù)的那種基于瀏覽器的測(cè)試,如果你需要可以試試,還是很方便的。
以上說明就到此位置,感覺以前遇到了很多小問題,但是一時(shí)也想不起來了,先這樣吧。
附錄:關(guān)于微軟的服務(wù)開發(fā)和uddi部署,可以參考一個(gè)我寫在電腦編程與技巧的文章。
里面關(guān)于UDDI的部署的一些發(fā)現(xiàn),可能在網(wǎng)上很難找到。
說明:我以前看的一個(gè)關(guān)于cxf開發(fā)的很詳細(xì)的文章在我的資源中,1分。
附錄:
【1】 tomcat manager 查看
【2】 發(fā)布界面:
That‘s all.
Good luck 2 u.
(#)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。