锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1.鍛戒護琛屼笅榪涜war 鏂囦歡鎵撳寘銆?br />
鍦―os 紿楀彛涓繘鍏ュ埌WEB 搴旂敤鏍圭洰褰曚笅(WebRoot涓?錛屾墽琛屽涓嬪懡浠わ紝濡傦細
jar cvf EJBClient.war *錛?/span>鍐嶆妸鎵撳寘鐨?font face="Verdana">EJBClient.war鎷瘋礉鍒癈:\jboss-5.0.0.GA\server\default\deploy鍙戝竷銆?/font>
2.鍦ˋnt 浠誨姟涓繘琛寃ar鏂囦歡鎵撳寘銆?/font>
build.xml鏂囦歡濡備笅錛?br />
<?xml version="1.0" encoding="UTF-8"?>
<project name="EJBClient" default="war" basedir=".">
<property environment="env" />
<property name="jboss.home" value="${env.JBOSS_HOME}" />
<property name="jboss.server.config" value="default" />
<target name="war" description="鍒涘緩WEB 鍙戝竷鍖?>
<war warfile="${basedir}/${ant.project.name}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
<classes dir="${basedir}/WebRoot/WEB-INF/classes">
<include name="**/*.class" />
</classes>
<lib dir="${basedir}/WebRoot/WEB-INF/lib">
<include name="*.jar" />
</lib>
<webinf dir="${basedir}/WebRoot">
<include name="*.*" />
</webinf>
</war>
</target>
<target name="deploy" depends="war" description="鍙戝竷WAR">
<copy file="${basedir}\${ant.project.name}.war" todir="${jboss.home}\server\${jboss.server.config}\deploy"/>
</target>
<target name="undeploy" description="鍗歌澆WAR">
<delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.war"/>
</target>
</project>
榪欎釜涓昏鍘熷洜灝卞湪stateless bean鐨勫疄鐜扮被銆?/font>
浠旂粏鏌ョ湅鍚庡彂鐜幫紝鍘熸潵鎴戝湪瀹炵幇綾葷殑姣忎釜鏂規硶鍓嶅姞鍏ヤ簡 @WebMethod(鎸囧畾鏆撮湶緇欏鐣岀殑鏂規硶)錛屽洜姝ゅ幓鎺夊氨鍙互浜嗐?/font>
13:41:39,168 WARN [StatelessBeanContext] EJBTHREE-1337: do not get WebServiceContext property from stateless bean context, it should already have been injected
13:41:39,215 WARN [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
13:41:39,215 WARN [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
13:41:39,230 WARN [InterceptorRegistry] applicable interceptors is non-existent for public cn.ztf.bean.Order cn.ztf.service.impl.OrderServiceBean.getOrder(java.lang.String)
13:41:39,246 WARN [InterceptorRegistry] applicable interceptors is non-existent for public java.lang.String cn.ztf.service.impl.OrderServiceBean.getUserName(java.lang.String)
13:41:39,246 WARN [InterceptorRegistry] applicable interceptors is non-existent for public java.util.List cn.ztf.service.impl.OrderServiceBean.getOrders()
13:41:39,246 WARN [InterceptorRegistry] applicable interceptors is non-existent for public cn.ztf.bean.Order cn.ztf.service.impl.OrderServiceBean.getOrder(java.lang.String)
13:41:39,261 WARN [InterceptorRegistry] applicable interceptors is non-existent for public java.lang.String cn.ztf.service.impl.OrderServiceBean.getUserName(java.lang.String)
13:41:39,261 WARN [InterceptorRegistry] applicable interceptors is non-existent for public java.util.List cn.ztf.service.impl.OrderServiceBean.getOrders()
13:41:39,293 WARN [StatelessBeanContext] EJBTHREE-1337: do not get WebServiceContext property from stateless bean context, it should already have been injected
13:46:27,043 WARN [StatelessBeanContext] EJBTHREE-1337: do not get WebServiceContext property from stateless bean context, it should already have been injected
13:46:27,043 WARN [StatelessBeanContext] EJBTHREE-1337: do not get WebServiceContext property from stateless bean context, it should already have been injected
posted @ 2009-03-30 14:33 鏂偣 闃呰(647) | 璇勮 (0)
浜岃呭亸閲嶇偣涓嶅悓錛?br />
Web鏈嶅姟鍋忛噸鐨勬槸榪欎釜緋葷粺瀵瑰鎻愪緵浠涔堝姛鑳斤紱
EJB鍋忛噸鐨勬槸濡備綍浣跨敤涓涓釜緇勪歡緇勮榪欎簺鍔熻兘銆?/font>
渚嬪錛氫竴涓‖鐩橈紝瀹冨澶栨彁渚涚殑鏄瓨鍌ㄦ湇鍔★紝榪欐槸web鏈嶅姟鐨勫叧娉ㄧ偣錛涘浜庢庢牱緇勮榪欎釜紜洏錛寃eb鏈嶅姟騫朵笉鍏沖績錛岃岃繖浜涙槸EJB鎵鍏蟲敞鐨勩?/font>
JavaEE涓簑eb service鎻愪緵浜嗕袱縐嶄笉鍚岀殑緙栫▼妯″瀷錛?span style="color: #0000ff">EJB瀹瑰櫒妯″瀷銆乄eb瀹瑰櫒妯″瀷銆?br /> 涓嬮潰浠ユ渶鏂扮殑JAX-WS2.x瑙勮寖(Java API for XML-based Web Services)浠嬬粛Webservice鐨勫紑鍙戙?br /> 娉細JAX-WS鐨勪笅杞借礬寰勪負https://jax-ws.dev.java.net/servlets/ProjectDocumentList?folderID=7796&expandFolder=7796&folderID=11088
EJB瀹瑰櫒妯″瀷鐨刉EB鏈嶅姟鐨勫鎴風寮鍙戯細
娉細棣栧厛鎴戜滑闇瑕佸緩绔嬩竴涓棤鐘舵丼essionBean錛岀劧鍚庢妸姝ゆ棤鐘舵丼essionBean鍙戝竷涓簑eb service銆?/font>
1.鍦ㄥ簲鐢ㄧ殑綾昏礬寰勪笅鏀懼叆JAX-WS鐨勫叏閮╦ar鏂囦歡錛屽茍涓旀妸寮曡繘鐨刯ar鏂囦歡娣誨姞鍒扮被璺緞涓婏紝鍗沖彸鍑婚」鐩悕-->Properties-->Java Build Path-->Add JARS銆?br /> 濡傛灉浣犱嬌鐢ㄧ殑鏄疛DK6錛岃繖涓姝ュ彲浠ョ渷鐣ワ紝鍥犱負JDK6宸茬粡緇戝畾浜咼AX-WS銆傜洰鍓岼DK6緇戝畾鐨凧AX-WS鐗堟湰鏄?.0銆?/font>
2.鎶奐AX-WS浜у搧lib鐩綍涓壘鍒癹axws-api.jar鍜宩axb-api.jar錛屾妸榪欎袱涓枃浠禼opy鍒癑DK_HOME/jre/lib/endorsed鐩綍涓嬨?/font>
3.鍒╃敤Web Service瀹㈡埛绔敓鎴愬伐鍏?wsimport宸ュ叿鐨凙nt浠誨姟綾?鐢熸垚杈呭姪綾匯?br />
build.xml鏂囦歡鍐呭濡備笅錛?br />
<?xml version="1.0" encoding="UTF-8"?>
<project name="WSClient" default="wsclientgen" basedir=".">
<property name="src.dir" value="${basedir}/src" />
<path id="build.classpath" description="璁劇疆綾昏礬寰?>
<fileset dir="${basedir}/lib">
<include name="*.jar"></include>
</fileset>
</path>
<target name="wsclientgen" description="鐢熸垚webservice瀹㈡埛绔緟鍔╀唬鐮侊紝鎵ц鍚庤鍒鋒柊欏圭洰">
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport"
classpathref="build.classpath"/>
<wsimport wsdl="http://localhost:8090/WebService/OrderServiceBean?wsdl"
sourcedestdir="${src.dir}" package="cn.ztf.ws.client" keep="true"
verbose="true" destdir="${basedir}/bin"/>
</target>
</project>
4.鍊熷姪杈呭姪綾昏皟鐢╓eb Service銆?br />
1.java娑堟伅椹卞姩bean灞炰簬Java娑堟伅鏈嶅姟(Java Message Service錛岀畝縐癑MS)銆?/font>
2.JMS鏄敤浜庤闂紒涓氭秷鎭郴緇熺殑寮鍙戝晢涓績鐨凙PI銆備紒涓氭秷鎭郴緇熷彲浠ュ崗鍔╁簲鐢ㄨ蔣浠墮氳繃緗戠粶榪涜娑堟伅浜や簰銆?/font>
3.JMS鐨勭紪紼嬭繃紼嬬畝鍗曟鎷負錛氬簲鐢ㄧ▼搴廇-->(娑堟伅)-->Jboss JMS-->(娑堟伅)-->搴旂敤紼嬪簭B銆傚簲鐢ㄧ▼搴廇鍜屽簲鐢ㄧ▼搴廈娌℃湁鐩存帴鐨勪唬鐮佸叧鑱旓紝涓よ呭疄鐜頒簡瑙h︺傛秷鎭紶閫掔郴緇熺殑涓績灝辨槸娑堟伅銆?/font>
娑堟伅椹卞姩Bean(MDB)鏄璁$敤鏉ヤ笓闂ㄥ鐞嗗熀浜庢秷鎭姹傜殑緇勪歡錛屽畠鍜屾棤鐘舵丼ession Bean涓鏍蜂篃浣跨敤浜嗗疄渚嬫睜鎶鏈紝瀹瑰櫒鍙互浣跨敤涓瀹氭暟閲忕殑bean瀹炰緥騫跺彂澶勭悊鎴愮櫨涓婂崈涓狫MS娑堟伅銆傛鍥犱負MDB鍏鋒湁澶?/font>鐞嗗ぇ閲忓茍鍙戞秷鎭殑鑳藉姏錛屾墍浠ラ潪甯擱傚悎搴旂敤鍦ㄤ竴浜涙秷鎭綉鍏充駭鍝併傚鏋滀竴涓笟鍔℃墽琛岀殑鏃墮棿寰堥暱錛?/font>鑰屾墽琛岀粨鏋滄棤闇瀹炴椂鍚戠敤鎴峰弽棣堟椂錛屼篃寰堥傚悎浣跨敤MDB銆傚璁㈠崟鎴愬姛鍚庣粰鐢ㄦ埛鍙戦佷竴灝佺數瀛愰偖浠舵垨鍙?/font>閫佷竴鏉$煭淇$瓑銆?/font>
娑堟伅鏈変笅闈㈠嚑縐嶇被鍨嬶紝浠栦滑閮芥槸媧劇敓鑷狹essage鎺ュ彛銆?br />
StreamMessage錛氫竴縐嶄富浣撲腑鍖呭惈Java鍩烘湰鍊兼祦鐨勬秷鎭傚叾濉厖鍜岃鍙栧潎鎸夐『搴忚繘琛屻?br />
MapMessage錛氫竴縐嶄富浣撲腑鍖呭惈涓緇勫悕-鍊煎鐨勬秷鎭?娌℃湁瀹氫箟鏉$洰欏哄簭)
TextMessage錛氫竴縐嶄富浣撲腑鍖呭惈Java瀛楃涓茬殑娑堟伅(渚嬪錛歑ML娑堟伅)
ObjectMessage錛氫竴縐嶄富浣撲腑鍖呭惈搴忓垪鍖朖ava瀵硅薄鐨勬秷鎭?br />
BytesMessage錛氫竴縐嶄富浣撲腑鍖呭惈榪炵畫瀛楄妭嫻佺殑娑堟伅銆?/font>
娑堟伅鐨勪紶閫掓ā鍨嬶細
JMS鏀寔涓ょ娑堟伅浼犻掓ā鍨嬶細鐐瑰鐐?point-to-point錛岀畝縐癙TP)鍜屽彂甯?璁㈤槄(publish/subscribe錛?/font>綆縐皃ub/sub)銆?br />
浜岃呮湁浠ヤ笅鍖哄埆錛?br />
1.PTP 娑堟伅浼犻掓ā鍨嬭瀹氫簡涓鏉℃秷鎭彧鑳戒紶閫掔粰涓涓帴鏀舵柟銆傞噰鐢╦avax.jms.Queue琛ㄧず銆?br />
2.Pub/sub 娑堟伅浼犻掓ā鍨嬪厑璁鎬竴鏉℃秷鎭紶閫掔粰澶氫釜鎺ユ敹鏂廣傞噰鐢╦avax.jms.Topic琛ㄧず銆?/span>
娉ㄦ剰錛氭瘡縐嶆ā鍨嬮兘閫氳繃鎵╁睍鍏敤鍩虹被鏉ュ疄鐜般備緥濡傦紝javax.jms.Queue 鍜宩avax.jms.Topic閮芥墿灞曡嚜javax.jms.Destination 綾匯?/font>
寮鍙戞楠ゅ涓嬶細
涓銆侀厤緗甦estinations-service.xml鏂囦歡銆?br />
JBOSS浣跨敤涓涓猉ML鏂囦歡閰嶇疆闃熷垪鍦板潃錛屾枃浠剁殑鍙栧悕鏍煎紡搴旈伒寰?-service.xml錛屾垜鍙栧悕涓?/font>destinations-service.xml銆?br />
jboss榛樿鐨勫叏灞JNDI鍚嶇О緇勬垚涓?span style="color: red">錛?queue"+"/"+"鐩爣鍦板潃"銆?/span>
寮濮婮MS緙栫▼鍓嶏紝鎴戜滑闇瑕佸厛閰嶇疆娑堟伅鍒拌揪鐨勭洰鏍囧湴鍧(Destination)錛屽洜涓哄彧鏈夌洰鏍囧湴鍧瀛樺湪浜嗭紝鎴戜滑鎵嶈兘鍙戦佹秷鎭埌榪欎釜鍦板潃銆傜敱浜庢瘡涓簲鐢ㄦ湇鍔″櫒鍏充簬鐩爣鍦板潃鐨勯厤緗柟寮忛兘鏈夋墍涓嶅悓錛屼笅闈互jboss涓轟緥錛岄厤緗竴涓猶ueue綾誨瀷鐨勭洰鏍囧湴鍧銆?br />
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=ztfQueue">
<attribute name="JNDIName">queue/ztfQueue</attribute>
<depends optional-attribute-
name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
<mbean code="org.jboss.mq.server.jmx.Topic"
name="jboss.mq.destination:service=Topic,name=ztfTopic">
<attribute name="JNDIName">topic/ztfTopic</attribute>
<depends optional-attribute-
name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>
娉ㄦ剰錛氫換浣曢槦鍒楁垨涓婚琚儴緗蹭箣鍓嶏紝搴旂敤鏈嶅姟鍣ㄥ繀欏誨厛閮ㄧ講Destination Manager Mbean錛屾墍鏈夋垜浠?/font>閫氳繃<depends>鑺傜偣澹版槑榪欎竴渚濊禆銆?/font>
浜屻佸湪java綾諱腑鍙戦佹秷鎭?鐢ㄥ埌jndi.properties)銆?br />
涓鑸彂閫佹秷鎭湁浠ヤ笅姝ラ錛?br />
1.寰楀埌涓涓狫NDI鍒濆鍖栦笂涓嬫枃(Context)
InitialContext ctx = new InitialContext();
2.鏍規嵁涓婁笅鏂囨煡鎵句竴涓繛鎺ュ伐鍘侰onnectionFactory錛屾敼榪炴帴宸ュ巶鏄敱JMS鎻愪緵鐨勶紝涓嶉渶鎴戜滑鑷繁鍒?/font>寤猴紝姣忎釜鍘傚晢閮戒負瀹冪粦瀹氫簡涓涓叏灞JNDI錛屾垜浠氳繃瀹冪殑鍏ㄥ眬JNDI渚胯幏鍙栧畠錛?br /> QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("ConnectionFactory");
3.浠庤繛鎺ュ伐鍘傚緱鍒頒竴涓繛鎺ueueConnection銆?br /> QueueConnection conn = factory.createQueueConnection();
4.閫氳繃榪炴帴鏉ュ緩绔嬩竴涓細璇?Session);
QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
榪欏彞浠g爜鎰忔濇槸錛氬緩绔嬩笉闇瑕佷簨鍔$殑騫朵笖鑳借嚜鍔ㄧ‘绔嬫秷鎭凡鎺ユ敹鐨勪細璇濄?/font>
5.鏌ユ壘鐩爣鍦板潃錛?br /> Destination destination=(Destination)ctx.lookup("queue/ztfQueue");
6.鏍規嵁浼氳瘽浠ュ強鐩爣鍦板潃鏉ュ緩绔嬫秷鎭敓浜ц匨essageProducer(QueueSender鍜孴opicPublisher閮芥墿灞?/font>鑷狹essageProducer鎺ュ彛)錛?br />
MessageProducer producer = session.createProducer(destination);
TextMessage msg = session.createTextMessage("鎮ㄥソ錛氳崋宸烇紝榪欐槸鎴戠殑絎竴涓秷鎭┍鍔˙ean");
producer.send(msg);
涓夈侀噰鐢∕essageDrivenBean鎺ユ敹娑堟伅銆?/font>
褰撳鍣ㄦ嫻嬪埌bean瀹堝欑殑鐩爣鍦板潃鏈夋秷鎭埌杈炬椂錛屽鍣ㄨ皟鐢╫nMessage()鏂規硶錛屽皢娑堟伅浣滀負鍙傛暟浼犲叆MDB銆侻DB鍦╫nMessage()涓喅瀹氬浣曞鐞嗘敼娑堟伅銆備綘鍙互浣跨敤娉ㄨВ鎸囧畾MDB鐩戝惉鍝竴涓洰鏍囧湴鍧(Destination)銆傚綋MDB閮ㄧ講鏃訛紝瀹瑰櫒灝嗚鍙栧叾涓殑閰嶇疆淇℃伅銆?/font>
涓涓狹DB閫氬父瑕佸疄鐜癕essageListener鎺ュ彛錛屽湪鎺ュ彛瀹氫箟浜唎nMessage()鏂規硶銆侭ean閫氳繃瀹冩潵澶勭悊鏀跺埌鐨凧MS娑堟伅銆?/font>
@MessageDriven(activationConfig=
{
@ActivationConfigProperty
(propertyName="destinationType",propertyValue="javax.jms.Queue"),
@ActivationConfigProperty
(propertyName="destination",propertyValue="queue/ztfQueue"),
@ActivationConfigProperty(propertyName="acknowledgeMode",propertyValue="Auto-
acknowledge")
})
public class MessageDrivenBean implements MessageListener{
public void onMessage(Message message) {
TextMessage msg = (TextMessage)message;
try {
System.out.println(msg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
鍥涖佹妸宸ョ▼src涓嬬殑鏂囦歡鎵撴垚jar鍖?鐢ㄥ埌build.xml)錛屽湪C:\jboss-5.0.0.GA\server\default\deploy榪涜閮ㄧ講銆?/font>
浜斻佽繍琛屽彂閫佹秷鎭殑java綾伙紝姝ゆ椂鍦╟onsole涓氨鍙湅瑙佺粨鏋滀簡銆?/font>
鍏佽嚦姝わ紝涓涓狹essageDrivenBean寮鍙戝氨鎴愬姛浜嗐?/font>
2.閫氳繃娉ㄨВ浣垮疄浣揵ean涓庢暟鎹簱琛ㄧ浉鏄犲皠銆?/font>
3.褰撳鎴風榪滅▼璋冪敤EJB鏃訛紝鏁版嵁鍦ㄤ紶閫佸伐紼嬩腑鏄渶瑕佸簭鍒楀寲鐨?nbsp;錛屼笟鍔℃柟娉曟槸瑕佽繑鍥濫ntitybean瀵硅薄鍒板鎴風錛屾樉鐒禘ntitybean瀵硅薄鏄榪涜搴忓垪鍖栫殑榪囩▼錛屾墍浠ヨ瀹炵幇搴忓垪鍖栨帴鍙o紝鍗沖璞″湪浜や簰鏃墮渶瑕佸疄鐜板簭鍒楀寲銆?/font>
4.Entitybean涓婚敭鍊肩殑鐢熸垚鏂瑰紡銆?br />
@GeneratedValue(strategy = GenerationType.IDENTITY)閽堝Mysql錛?br />
@GeneratedValue(strategy = GenerationType.SEQUENCE)閽堝Oracle,
@GeneratedValue(strategy = GenerationType.AUTO)鑷姩鍖歸厤鏁版嵁搴撱?/font>
5.闇瑕佷繚鐣欎竴涓棤鍙傜殑鏋勯犲嚱鏁幫紝鏄疛PA瑙勮寖瑕佹眰鐨勶紝濡傛灉娌℃湁錛屽湪榪愯鏃舵槸瑕佹姤閿欑殑銆?/font>
6.瀵硅薄涔嬮棿鐨勬瘮杈冿紝閫氬父閲囩敤瀵硅薄鏍囧織灞炴ф潵榪涜姣旇緝錛屼篃灝辨槸ID榪涜姣旇緝錛屽洜姝ょ幇鍦ㄩ噸杞絟ashCode銆乪quals涓や釜鏂規硶銆?/font>
JPA鐨勫嚭鐜頒富瑕佹槸涓轟簡綆鍖栫幇鏈夌殑鎸佷箙鍖栧紑鍙戝伐浣滃拰鏁村悎ORM鎶鏈紝鐩墠瀹炵幇鐨凧PA瑙勮寖鐨勪富嫻佷駭鍝佹湁Hibernate銆乀oplink鍜孫penJPA錛屽湪jboss涓?/font>閲囩敤浜咹ibernate浣滀負鍏舵寔涔呭寲瀹炵幇浜у搧銆?
鏍規嵁JPA瑙勮寖鐨勮姹傦細鍦ㄥ疄浣揵ean搴旂敤涓紝鎴戜滑闇瑕佸湪搴旂敤鐨勭被璺緞涓嬬殑META-INF鐩綍鍔犲叆鎸佷箙鍖栭厤緗枃浠秔ersistence.xml銆?br />
persistence.xml鏂囦歡鐢ㄤ簬鎸囧畾Entitybean浣跨敤鐨勬暟鎹簮鍙奅ntityManager瀵硅薄鐨勯粯璁よ涓恒?
persistence.xml鐨勯厤緗鏄庡涓嬶細
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<!-- 涓涓寔涔呭寲鍗曞厓鏄竴涓狤ntitybean鐨勯泦鍚堬紝JTA浠h〃鍏ㄥ眬浜嬬墿銆?->
<persistence-unit name="ztf" transaction-type="JTA">
<jta-data-source>java:/ztfDS</jta-data-source>
<properties>
<!-- 鏍規嵁鍏冩暟鎹敓鎴愭暟鎹簱鐨勮〃緇撴瀯銆?-->
<property name="hibernate.hbm2ddl.auto" value="update"/>
<!-- 鏄劇ず鎵ц鐨凷QL銆?-->
<property name="hibernate.show_sql" value="true"/>
<!-- 鏍煎紡鍖栨樉紺虹殑SQL 銆?-->
<property name="hibernate.format_sql" value="true"/>
<!-- SQL鏂硅█銆?-->
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
</properties>
</persistence-unit>
</persistence>
娉ㄦ剰錛氬洜涓簀boss 閲囩敤Hibernate錛孒ibernate 鏈変竴欏瑰睘鎬ibernate.hbm2ddl.auto錛岃灞炴ф寚瀹氬疄浣揃ean鍙戝竷鏃舵槸鍚﹀悓姝ユ暟鎹簱緇撴瀯銆?/font>
1.濡傛灉hibernate.hbm2ddl.auto鐨勫艱涓篶reate-drop錛屽湪瀹炰綋Bean鍙戝竷鍙婂嵏杞芥椂灝嗚嚜鍔ㄥ垱寤哄強鍒犻櫎鐩稿簲鏁版嵁搴撹〃(娉ㄦ剰錛欽boss 鏈嶅姟鍣ㄥ惎鍔ㄦ垨鍏抽棴鏃朵篃浼氬紩鍙戝疄浣揃ean 鐨勫彂甯冨強鍗歌澆)銆?/font>
2.濡傛灉hibernate.hbm2ddl.auto鐨勫艱涓簎pdate,浠ュ悗涓轟簡瀹炰綋bean鐨勬敼鍔ㄨ兘鍙嶅簲鍒版暟鎹〃錛屽緩璁嬌鐢╱pdate錛岃繖鏍峰疄浣揃ean 娣誨姞涓涓睘鎬ф椂鑳藉悓鏃跺湪鏁版嵁琛ㄥ鍔犵浉搴斿瓧孌點?/font>
鏈湴鎺ュ彛璋冪敤ejb鐨勮繃紼嬶細
閫氳繃鏈湴鎺ュ彛璋冪敤ejb錛岀洿鎺ュ湪鍐呭瓨浜や簰錛岃繖鏍峰氨鍙互閬垮厤鍥犵綉緇滈氫俊鎵閫犳垚鐨勫悇縐嶆ц兘寮閿銆?br />
娉ㄦ剰錛?br />
1.鍙湁瀹㈡埛绔笌EJB搴旂敤閮藉湪鍚屼竴涓狫VM鍐呰繍琛岀殑鏃跺欙紝鎴戜滑鎵嶈兘璋冪敤鏈湴鎺ュ彛錛屽惁鍒欏彧鑳借皟鐢ㄨ繙紼嬫帴鍙c?br />
2.鍙瀹㈡埛绔笌ejb鍙戝竷鍦ㄥ悓涓涓猨boss鍐咃紝鎴戜滑灝辮涓哄畠浠湪鍚屼竴涓狫VM銆?br />
3.瀹㈡埛绔彲浠ヨ皟鐢ㄦ湰鍦版帴鍙o紱涔熷彲璋冪敤榪滅▼鎺ュ彛錛涘綋鏈湴鎺ュ彛涓庤繙紼嬫帴鍙i兘鏈夊悓涓涓柟娉曟椂錛屼紭鍏堣皟鐢ㄦ湰鍦版帴鍙d腑鐨勬柟娉曘?/span>
寮鍙戜竴涓嚜宸辯殑榪滅▼鎺ュ彛鐨勬棤鐘舵佷細璇漛ean錛?/span> 寮鍙戜竴涓嚜宸辯殑鏈湴鎺ュ彛鐨勬棤鐘舵佷細璇漛ean錛?br />
1.闇瑕佽嚜宸卞紑鍙戠殑EJB鐨勭粍浠?jar鍖呫?br />
娉ㄦ剰錛氬湪瀹炵幇綾諱腑鍔犲叆娉ㄨВ錛岀粦瀹氭帴鍙c?br />
@Stateless銆丂Local(HelloWorldLocal.class)//鎺ュ彛銆?br />
2.闇瑕佽嚜宸卞紑鍙戝嚭鐨凟JB鐨勫鎴風錛屽茍鎶婂鎴風宸ョ▼鎵撴垚.war鏂囦歡銆?br />
娉ㄦ剰錛氬鎴風鎵瑕佺煡閬撶殑JNDI鍚嶇О錛屼笅闈㈢殑HelloWorldLocal 涓烘湰鍦版帴鍙c?br />
InitialContext ctx = new InitialContext(); Bean瀹炰緥鐨勪袱縐嶇鐞嗘妧鏈細 Jboss鐢熸垚鐨凧NDI鍚嶇О錛岄粯璁ゅ懡鍚嶈鍒欏涓嬶細 jndi.properties鐨勯厤緗細
1.闇瑕佽嚜宸卞紑鍙戠殑EJB鐨勭粍浠?jar鍖呫?br />
娉ㄦ剰錛氬湪瀹炵幇綾諱腑鍔犲叆娉ㄨВ錛岀粦瀹氭帴鍙c?br />
@Stateless銆丂Remote(HelloWorld.class) //涓烘帴鍙c?br />
2.闇瑕佽嚜宸卞紑鍙戝嚭鐨凟JB鐨勫鎴風錛屽茍鎶婂鎴風宸ョ▼鎵撴垚.war鏂囦歡銆?br />
娉ㄦ剰錛氬鎴風鎵瑕佺煡閬撶殑JNDI鍚嶇О錛屼笅闈㈢殑HelloWorld 涓鴻繙紼嬫帴鍙c?br />
InitialContext ctx = new InitialContext();
HelloWorld helloWorld = (HelloWorld)ctx.lookup("HelloWorldBean/remote");
out.println(helloWorld.sayHello("鑽嗗窞"));
3.鎶?jar鍜?war鏂囦歡鎷瘋礉鍒癹boss鐨刣eploy鍖恒?br />
4.鎵撳紑嫻忚鍣紝杈撳叆鑷繁寮鍙戝嚭鐨凟JB瀹㈡埛绔殑.jsp欏甸潰錛屽嵆鍙?/p>
HelloWorldLocal helloWorld = (HelloWorldLocal)ctx.lookup("HelloWorldLocalBean/local");
out.println(helloWorld.sayHello("鑽嗗窞"));
3.鎶?jar鍜?war鏂囦歡鎷瘋礉鍒癹boss鐨刣eploy鍖恒?br />
4.鎵撳紑嫻忚鍣紝杈撳叆鑷繁寮鍙戝嚭鐨凟JB瀹㈡埛绔殑.jsp欏甸潰錛屽嵆鍙?/p>
1.鏃犵姸鎬乥ean浣跨敤瀹炰緥姹犳妧鏈鐞哹ean錛?br />
2.鏈夌姸鎬乥ean浣跨敤嬋媧?activation)綆$悊bean銆?/p>
濡傛灉鎶奅JB搴旂敤鎵撳寘鎴愬悗棰樹負.jar鐨勬ā鍧楁枃浠訛紝榛樿鐨勫叏灞JNDI鍚嶇О鏄?br />
鏈湴鎺ュ彛錛欵JB-CLASS-NAME/local
榪滅▼鎺ュ彛錛欵JB-CLASS-NAME/remote
渚嬪錛氭妸EJB-HelloWorld(閲岄潰鍖呭惈鎺ュ彛HelloWorld鍜屽疄鐜扮被HelloWorldBean)搴旂敤鎵撳寘鎴怑JB-HelloWorld.jar鏂囦歡錛屽畠鐨勮繙紼嬫帴鍙g殑JNDI鍚嶇О鏄細HelloWorldBean/remote銆?/p>
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
posted @ 2009-03-26 09:56 鏂偣 闃呰(255) | 璇勮 (0)
]]>
涓嬮潰浠嬬粛Elispse 鎵撳寘鍚戝鍜孉nt 鎵撳寘浠誨姟銆?br />
1. Elispse 鎵撳寘鍚戝
鍦‥lispse 寮鍙戠幆澧冧笅錛屽彲浠ラ氳繃鍚戝榪涜鎵撳寘銆傚彸鍑婚」鐩悕縐幫紝鍦ㄨ煩鍑虹殑鑿滃崟涓夋嫨Export-->Java-->JAR file錛屽湪"閫夋嫨瑕佸鍑虹殑璧勬簮"鏃訛紝閫夋嫨婧愮洰褰曞拰鐢ㄥ埌鐨勮祫婧愮劧錛屽悗閫夋嫨涓涓瓨鏀劇洰褰曞強鏂囦歡鍚嶏紝鐐?瀹屾垚"灝辯粨鏉熶簡鎵撳寘銆?/p>
2. Ant 鎵撳寘浠誨姟
涓昏鏄湪Eclipse涓嬶紝閫氳繃閰嶇疆build.xml榪涜ANT 鎵撳寘錛屾潵鎻愰珮寮鍙戞晥鐜?涔熸槸鎺ㄨ崘鐨勬墦鍖呮柟寮忋?br />
涓嬮潰鎴戜滑鐪嬩竴涓畝鍗曠殑鎵撳寘浠誨姟銆?br />
<?xml version="1.0" encoding="UTF-8"?>
<project name="EJB-HelloWorld" basedir=".">
<property name="src.dir" value="${basedir}\src" />
<property environment="env" />
<property name="jboss.home" value="${env.JBOSS_HOME}" />
<property name="jboss.server.config" value="default" />
<property name="build.dir" value="${basedir}\build" />
<path id="build.classpath">
<fileset dir="${jboss.home}\client">
<include name="*.jar"></include>
</fileset>
<pathelement location="${build.dir}"/>
</path>
<target name="prepare">
<delete dir="${build.dir}"/>
<mkdir dir="${build.dir}"/>
</target>
<target name="compile" depends="prepare" description="緙栬瘧 ">
<javac srcdir="${src.dir}" destdir="${build.dir}">
<classpath refid="build.classpath" />
</javac>
</target>
<target name="ejbjar" depends="compile" description="鍒涘緩EJB鍙戝竷鍖?>
<jar jarfile="${basedir}\${ant.project.name}.jar" >
<fileset dir="${build.dir}" >
<include name="**/*.class"></include>
</fileset>
</jar>
</target>
<target name="deploy" depends="ejbjar" description="鍙戝竷EJB">
<copy file="${basedir}\${ant.project.name}.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy"/>
</target>
<target name="undeploy" description="鍗歌澆EJB">
<delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.jar"/>
</target>
</project>
鍐嶅彸鍋ョ偣鍑繪閰嶇疆鏂囦歡build.xml錛岄夋嫨Run As-->Ant Build鍗沖彲錛?/p>
posted @ 2009-03-26 09:51 鏂偣 闃呰(158) | 璇勮 (0)
閲囩敤EJB寮鍙戝熀浜嶮VC錛堝寘鍚樉紺哄眰銆佹帶鍒跺眰鍜屼笟鍔″眰錛夌粨鏋勭殑搴旂敤錛岄偅涔圗JB灝辨槸鐢ㄤ簬寮鍙戝簲鐢ㄧ殑涓氬姟灞傘?/span>
寮鍙慐JB閬靛驚濡備笅姝ラ榪涜錛?br />
1.寮鍙戞瀯鎴怑JB緇勪歡鐨凧ava婧愭枃浠訛紝姣斿錛氱粍浠舵帴鍙c丠ome鎺ュ彛銆佷紒涓欱ean綾匯佹墍闇鐨勮緟鍔╃被絳夈?br />
2.鎵嬪伐瀹屾垚閮ㄧ講鎻忚堪絎︼紝鎴栬呭熷姪涓嶪DE銆?br />
3.緙栬瘧姝ラ1寮鍙戠殑java婧愭枃浠?
4.鍊熷姪浜嶫DK鑷甫鐨刯ar浣跨敤宸ュ叿錛屾潵鍒涘緩鍚湁閮ㄧ講鎻忚堪絎﹀拰.class鏂囦歡鐨凟JB-jar鏂囦歡銆?br />
5.閫氳繃鍏蜂綋EJb瀹瑰櫒鎻愪緵鐨勯儴緗插緩璁紝鏉ュ畬鎴怑jb-jar鏂囦歡鐨勯儴緗層?br />
6.閰嶇疆EJB鏈嶅姟鍣紝浣垮緱Ejb-jar鍚湁鐨凟jb緇勪歡鑳藉姝e父榪愪綔銆?br />
7.鍚姩EJB鏈嶅姟鍣ㄣ傛鏃訛紝寮鍙戣呭彲浠ラ獙璇丒JB緇勪歡鏄惁閮ㄧ講鎴愬姛,騫惰繍琛屻?br />
EJB3.0瑙勮寖瀹氫箟浜嗗涓?縐岴JB緇勪歡綾誨瀷錛?br />
1銆佷細璇滲ean(SessionBean)錛氭棤鐘舵佷細璇滲ean(Stateless SessionBean)銆佹湁鐘舵佷細璇滲ean(Stateful SessionBean)銆?br />
浼氳瘽Bean閫氬父鏈変互涓嬪睘鎬э細
錛?錛変唬琛ㄥ崟涓鎴鋒満鎵ц銆?br />
錛?錛夊彲浠ユ槸浜嬪姟鐨勩?br />
錛?錛夊彲浠ユ洿鏂板叡浜暟鎹簱涓殑鏁版嵁銆?br />
錛?錛夌敓瀛樻湡鐩稿杈冪煭銆?br />
錛?錛夊叾鐢熷瓨鏈熼氬父灝辨槸瀹㈡埛鏈虹殑鐢熷瓨鏈熴?br />
錛?錛変換浣曟寔涔呮ф暟鎹兘鏈塀ean綆$悊銆?br />
錛?錛夊彲浠ヤ緷瀹瑰櫒鐨勫垽鏂簣浠ュ垹闄ゃ?br />
錛?錛変細鍦‥JB鏈嶅姟鍣ㄥけ璐ユ椂琚垹闄ゃ?br />
EJB瀹瑰櫒綆$悊鏃犵姸鎬佷細璇滲ean鐨勭敓瀛樺懆鏈燂紝鍏舵柟寮忔槸閫氳繃鍒涘緩瓚沖澶氭暟閲忕殑姝ょBean閫傚簲瀹㈡埛鏈哄伐浣滆礋鑽?騫跺湪涓嶉渶瑕佸畠浠殑鏃跺欏皢鍏跺垹闄ゆ垨鑰呭皢闂茬疆鐨凚ean鍐欏埌紓佺洏涓娿?br />
濡傛灉浼氳瘽Bean鍦ㄦ柟娉曡皟鐢ㄤ箣鍓嶉渶瑕佷繚鐣欑姸鎬佷俊鎭紝鍒欏繀欏諱嬌鐢ㄦ湁鐘舵佺殑浼氳瘽Bean(Stateful SessionBean)銆?br />
浼氳瘽Bean鍦↗2EE搴旂敤紼嬪簭涓鐢ㄦ潵瀹屾垚涓浜涙湇鍔″櫒绔殑涓氬姟鎿嶄綔錛屼緥濡傝闂暟鎹簱銆佽皟鐢ㄥ叾浠朎JB緇勪歡銆?br />
鎬諱箣錛屼細璇滲ean浠h〃涓縐嶆搷浣滐細瀹冩绱㈡垨鑰呭瓨鍌ㄦ暟鎹互婊¤凍鐢ㄦ埛鐨勮姹傘?/span>
2銆佸疄浣揃ean(EntityBean)錛岄氬父鏈変互涓嬪睘鎬?
錛?錛変唬琛ㄦ暟鎹簱鐨勬暟鎹?br />
錛?錛夋槸浜嬪姟鎬х殑銆?br />
錛?錛夊厑璁稿涓敤鎴峰叡鍚岃闂?br />
錛?錛夊彲浠ラ暱鏈熷瓨鍦ㄣ?br />
錛?錛夋寔涔呮ф暟鎹彲浠ョ敱瀹瑰櫒綆$悊銆?br />
錛?錛夊湪EJB鏈嶅姟鍣ㄥけ璐ュ悗鑳界戶緇敓瀛樸?br />
瀹炰綋Bean琚敤鏉ヤ唬琛ㄥ簲鐢ㄦ暟鎹簱涓敤鍒扮殑鏁版嵁銆備緥濡傚湪涓涓數瀛愬晢鍔$郴緇熶腑錛屽疄浣揃ean鍙互琚敤鏉ヤ唬琛ㄤ駭鍝併侀泧鍛樸佷俊鐢ㄥ崱銆佽鍗曟暟鎹瓑鏁版嵁瀵硅薄銆?br />
鎸佷箙鎬ф槸瀹炰綋Bean鐨勪竴涓熀鏈睘鎬с侲JB瑙勮寖鍏佽涓ょ褰㈠紡鐨勫疄浣撴寔涔呮?Bean綆$悊鐨勬寔涔呮?BMP)鍜屽鍣ㄧ鐞嗙殑鎸佷箙鎬?CMP)銆?br />
瀹炰綋Bean鏀寔澶氫釜鐢ㄦ埛騫跺彂鐨勮闂暟鎹侲JB瑙勮寖璇存槑錛岀淮鎶ゆ暟鎹殑瀹屾暣鎬ф槸瀹瑰櫒鐨勮矗浠匯傚鍣ㄥ畬鎴愯繖涓換鍔¢氬父鐨勫仛娉曟槸錛岄攣瀹氭暟鎹簱涓殑鏁版嵁錛屽茍浣胯闂覆琛屽寲錛屾垨鑰呴氳繃鍒涘緩澶氫釜瀹炰綋Bean鐨勫疄渚嬶紝騫跺厑璁稿湪鍩虹鏁版嵁瀛樺偍涓嬌鐢ㄥ茍鍙戞帶鍒訛紝鏉ョ鐞嗚闂?br />
鎬諱箣錛屽疄浣揃ean浠h〃涓縐嶆暟鎹泦錛氬彲浠ヨ闂繖浜涙暟鎹泦浠ユ弧瓚崇敤鎴風殑璇鋒眰銆?/span>
3銆佹秷鎭┍鍔╞ean(Message DrivenBean)
娑堟伅椹卞姩Bean瑕佷笌JMS緇撳悎浣跨敤錛屼互鎻愪緵娑堟伅椹卞姩鐨勫紓姝ュ鐞嗗姛鑳姐備緥濡傜數瀛愬晢鍔$郴緇熺殑浜ゆ槗紜灝卞彲浠ョ敤娑堟伅椹卞姩Bean鏉ュ疄鐜般?br />
娑堟伅椹卞姩Bean浣滀負JMS闃熷垪鍜屼富棰樼殑鐩戝惉鍣ㄩ儴緗詫紝褰撴湁JMS娑堟伅鍒拌揪錛岀郴緇熷氨浼氳皟鐢ㄦ秷鎭┍鍔˙ean鍘誨畬鎴愪笟鍔¢昏緫鏂規硶銆?br />
鎬諱箣錛屽鎴鋒満涓嶈兘鐩存帴璋冪敤娑堟伅椹卞姩Bean錛屽鎴烽氳繃鍙戦丣MS娑堟伅璋冪敤娑堟伅椹卞姩Bean銆?/font>