這之後我們同樣需要改動web.xml文件來將web容器的框架告訴給orion,如下︰
<EJB-REF>
<EJB-REF-NAME>ejb/AddressBook</EJB-REF-NAME>
<EJB-REF-TYPE>Entity</EJB-REF-TYPE>
<HOME>net.chinacode.addressbook.AddressBook</HOME>
<REMOTE>net.chinacode.addressbook.AddressEntry</REMOTE>
</EJB-REF>
<WELCOME-FILE-LIST>
<WELCOME-FILE>index.html</WELCOME-FILE>
</WELCOME-FILE-LIST>
我們把這段加入到web.xml中的web-app段中去。同時將原來我們做的servlet-mapping中的url-pattern指如/hello這樣的url。第一段是向web容器告知一個可以使用的Entity Bean的框架,以便jsp能夠得知EJB的結構。第二段則是設定默認的歡迎頁面的文件名為index.html。這樣服務器會先在目錄下尋找這個文件來返回給客戶。
還有最後一件事情,就是改動build.xml文件以方便ant來編譯系統,如果你希望成為一名好的j2ee開發人員,我更建議你來改動這個文件,這里由于篇幅限制不列出全部,只列出需要改動的web段︰
<TARGET name="web-classes" depends="prepare">
<JAVAC srcdir="${src.dir}"
destdir="${lib.dir}/web/WEB-INF/classes"
includes="java/net/chinacode/web/**"
classpath="${lib.dir}/ejb:${orion.dir}/ejb.jar:${orion.dir}/jndi.jar:${orion.dir}/orion.jar" />;
</TARGET>
<TARGET name="jsp" depends="prepare">
<COPYDIR
</TARGET>
<TARGET name="html" depends="prepare">
</TARGET>
<TARGET name="web-war" depends="jsp,html,web-classes,web-web-inf">
<JAR
</TARGET>
更為詳細的可以見附錄。這之後,我們可以試著在hdsite目錄下運行ant了。運行完ant後我們再重新啟動一次orion,可以看到它的提示如下︰
Auto-unpacking C:\hdsite\rel\helloejb.ear... done.
Auto-unpacking C:\hdsite\rel\helloejb\helloejb-web.war... done.
Auto-deploying helloejb-ejb.jar (Class 'net.chinacode.hello.Hello' had been updated)...
Auto-creating table: create table net_chinacode_addressbook_AddressEntry (name VARCHAR(255) not null primary key, address VARCHAR(255) null, city VARCHAR(255) null)
done.
Orion/1.3.8 initialized
真是太神奇了,orion為我們所想建好了數據庫(默認情況下它使用了內置的Hypersonic數據庫)。如果是在同一台機器上,哪麼你試試http://localhost/helloejb/ 就可以看到一個簡單的地址本工具了。再試試http://localhost/helloejb/hello 哪麼訪問的就是從前的session bean的例子了。
我們完成了在orion下的兩個EJB例程的開發,希望大家能以此為起點進行J2EE的大家庭。

