﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-存在就是合理的</title><link>http://www.blogjava.net/wukerit/</link><description>会思考的僵尸</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 18:58:45 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 18:58:45 GMT</pubDate><ttl>60</ttl><item><title>Hibernate中使用的两种查询方式:HQL查询和原生SQL查询</title><link>http://www.blogjava.net/wukerit/archive/2006/09/29/72815.html</link><dc:creator>KanIT</dc:creator><author>KanIT</author><pubDate>Fri, 29 Sep 2006 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/wukerit/archive/2006/09/29/72815.html</guid><wfw:comment>http://www.blogjava.net/wukerit/comments/72815.html</wfw:comment><comments>http://www.blogjava.net/wukerit/archive/2006/09/29/72815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wukerit/comments/commentRss/72815.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wukerit/services/trackbacks/72815.html</trackback:ping><description><![CDATA[
		<p>Hibernate中使用的两种查询方式:HQL查询和原生SQL查询<br /><br />package app;</p>
		<p>import app.UserInfo;<br />import java.util.*;<br />import org.hibernate.*;<br />import org.hibernate.cfg.*;</p>
		<p>public class Test <br />{</p>
		<p> /**<br />  * @param args<br />  */<br /> public static void main(String[] args) <br /> {<br />  // TODO Auto-generated method stub<br />  try{<br />  SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); <br />  Session session = sessionFactory.openSession();<br />  //HQL查询<br />  //List list = session.createQuery("from UserInfo where username = 'ken'").list();<br />  Iterator iterator = session.createSQLQuery("select * from TESTUSERINFO").list().iterator();<br />  //System.out.println(((UserInfo)list.get(0)).getPassword());<br />  for(;iterator.hasNext(); )<br />  {<br />   Object[] obj=(Object[])iterator.next();<br />   for(int i=0;i&lt;obj.length;i++)<br />   {<br />    System.out.println(obj[i].toString());<br />   }<br />  }<br />  /*<br />  UserInfo user = new UserInfo();<br />  for (ListIterator iterator = list.listIterator(); iterator.hasNext(); ) { <br />   user = (UserInfo)iterator.next(); <br />      System.out.println("name: " + user.getUsername()); <br />  }*/<br />        /*user.setUserid("4"); <br />        user.setUsername("wukerit"); <br />        user.setPassword("password"); </p>
		<p>         <br />        Transaction tx= session.beginTransaction(); <br />        session.save(user); <br />        tx.commit();*/<br />        session.close(); <br />        sessionFactory.close(); <br />  }<br />  catch(PropertyNotFoundException err)<br />  {<br />   err.printStackTrace();<br />  }<br />  catch(Exception err)<br />  {<br />   err.printStackTrace();<br />  }<br />        //System.out.println("新增資料OK!請先用Oracle觀看結果！"); <br />    } <br />}<br /></p>
<img src ="http://www.blogjava.net/wukerit/aggbug/72815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wukerit/" target="_blank">KanIT</a> 2006-09-29 14:47 <a href="http://www.blogjava.net/wukerit/archive/2006/09/29/72815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Context解释</title><link>http://www.blogjava.net/wukerit/archive/2006/08/14/63481.html</link><dc:creator>KanIT</dc:creator><author>KanIT</author><pubDate>Mon, 14 Aug 2006 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/wukerit/archive/2006/08/14/63481.html</guid><wfw:comment>http://www.blogjava.net/wukerit/comments/63481.html</wfw:comment><comments>http://www.blogjava.net/wukerit/archive/2006/08/14/63481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wukerit/comments/commentRss/63481.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wukerit/services/trackbacks/63481.html</trackback:ping><description><![CDATA[下文（Context）这个术语，在我们日常的开发工作中经常被提及。
<p>那么怎么理解context呢，或者说什么是context呢？下面就从我个人的角度来进行解释</p><p>刚刚接触context这个词好像还是在看《J2EE技术内幕》那本书的时候，那个时候对于上下文的理解基本上就是0，只知道这个词而已。</p><p>如今对于context这个词，则有了种恍然大悟的感觉。中文翻译起来就是“上下文”，从字面意思我们就可以很清楚的去理解。</p><p>首先“上下”表现的是一种承上启下的关系，是一种从前一个事物传递给后一个事物的这么个东西。用面向对象语言来说，就是从一个object传递到另外一个object的消息而已，只不过这个message里面包含了一些公用的信息。</p><p>其次，“文”意味着这是一种信息，一组文字，一些内容。也就是说他含有了其他事物所需要的信息。</p><img src ="http://www.blogjava.net/wukerit/aggbug/63481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wukerit/" target="_blank">KanIT</a> 2006-08-14 15:03 <a href="http://www.blogjava.net/wukerit/archive/2006/08/14/63481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse+MyEclipse+weblogic8开发EJB初探</title><link>http://www.blogjava.net/wukerit/archive/2006/08/09/62529.html</link><dc:creator>KanIT</dc:creator><author>KanIT</author><pubDate>Wed, 09 Aug 2006 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/wukerit/archive/2006/08/09/62529.html</guid><wfw:comment>http://www.blogjava.net/wukerit/comments/62529.html</wfw:comment><comments>http://www.blogjava.net/wukerit/archive/2006/08/09/62529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wukerit/comments/commentRss/62529.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wukerit/services/trackbacks/62529.html</trackback:ping><description><![CDATA[
		<p>一、无状态会话BEAN<br />搞了几年JAVA了,最近由于完全不懂EJB技术,被取笑了!我怒而学之.<br />以下为自己保留的代码,大部分抄袭网上的,只为自己保留,望看客一笑而过!<br />关键字一:DOMAIN域<br />为WEBLOGIC管理应用的机制.用WEBLOGIC自带的Configuration Wizard工具生成,根据功能不同能创建不同的工作域.<br />关键字二:部署<br />Eclipse+MyEclipse提供了比较强大的部署功能,这里忽略先.<br />具体代码如下:<br />package com.ejb;</p>
		<p>import java.rmi.RemoteException;</p>
		<p>import javax.ejb.EJBException;<br />import javax.ejb.SessionBean;<br />import javax.ejb.SessionContext;</p>
		<p>/**<br /> * XDoclet-based session bean.  The class must be declared<br /> * public according to the EJB specification.<br /> *<br /> * To generate the EJB related files to this EJB:<br /> *  - Add Standard EJB module to XDoclet project properties<br /> *  - Customize XDoclet configuration for your appserver<br /> *  - Run XDoclet<br /> *<br /> * Below are the xdoclet-related tags needed for this EJB.<br /> * <br /> * @ejb.bean name="HelloWorld"<br /> *           display-name="Name for HelloWorld"<br /> *           description="Description for HelloWorld"<br /> *           jndi-name="ejb/HelloWorld"<br /> *           type="Stateless"<br /> *           view-type="remote"<br /> */<br />public class HelloWorld implements SessionBean {</p>
		<p> /** The session context */<br /> private SessionContext context;<br /> private String message = "helloworld!";<br /> public HelloWorld() {<br />  // TODO Auto-generated constructor stub<br /> }</p>
		<p> public void ejbActivate() throws EJBException, RemoteException {<br />  // TODO Auto-generated method stub</p>
		<p> }</p>
		<p> public void ejbPassivate() throws EJBException, RemoteException {<br />  // TODO Auto-generated method stub</p>
		<p> }</p>
		<p> public void ejbRemove() throws EJBException, RemoteException {<br />  // TODO Auto-generated method stub</p>
		<p> }</p>
		<p> /**<br />  * Set the associated session context. The container calls this method <br />  * after the instance creation.<br />  * <br />  * The enterprise bean instance should store the reference to the context <br />  * object in an instance variable.<br />  * <br />  * This method is called with no transaction context. <br />  * <br />  * @throws EJBException Thrown if method fails due to system-level error.<br />  */<br /> public void setSessionContext(SessionContext newContext)<br />  throws EJBException {<br />  context = newContext;<br /> }</p>
		<p>/**<br />* 自己新创建的业务方法<br />**/<br /> public String getMessage()throws EJBException<br /> {<br />  return this.message;<br />  //return new String("helloworld!");<br /> }<br />///////////////////////////////////////////////////////////////////////////////////分割线///////////////////////////////////////////////////////////////////////////<br />/*<br /> * Generated by XDoclet - Do not edit!<br /> */<br />package com.ejb;</p>
		<p>/**<br /> * Session layer for HelloWorld.<br /> * @xdoclet-generated at ${TODAY}<br /> * @copyright The XDoclet Team<br /> * @author XDoclet<br /> * @version ${version}<br /> */<br />public class HelloWorldSession<br />   extends com.ejb.HelloWorld<br />   implements javax.ejb.SessionBean<br />{<br />   public void ejbActivate() throws javax.ejb.EJBException, java.rmi.RemoteException<br />   {</p>
		<p>      super.ejbActivate();<br />   }</p>
		<p>   public void ejbPassivate() throws javax.ejb.EJBException, java.rmi.RemoteException<br />   {<br />      super.ejbPassivate();<br />   }</p>
		<p>   public void setSessionContext(javax.ejb.SessionContext ctx) throws javax.ejb.EJBException<br />   {<br />      super.setSessionContext(ctx);<br />   }</p>
		<p>   public void unsetSessionContext() <br />   {<br />   }</p>
		<p>   public void ejbRemove() throws javax.ejb.EJBException, java.rmi.RemoteException<br />   {<br />      super.ejbRemove();<br />   }</p>
		<p>   public void ejbCreate() throws javax.ejb.CreateException<br />   {<br />   }<br />}<br />//////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////<br /><br />/*<br /> * Generated by XDoclet - Do not edit!<br /> */<br />package com.interfaces;</p>
		<p>import javax.ejb.EJBException;<br />import java.rmi.*;</p>
		<p>/**<br /> * Remote interface for HelloWorld.<br /> * @xdoclet-generated at ${TODAY}<br /> * @copyright The XDoclet Team<br /> * @author XDoclet<br /> * @version ${version}<br /> */<br />public interface HelloWorld<br />   extends javax.ejb.EJBObject<br />{<br />   /**<br />    * An example business method<br />    * @throws EJBException Thrown if method fails due to system-level error.    */<br />   /*public void replaceWithRealBusinessMethod(  )<br />      throws java.rmi.RemoteException;*/<br />   public String getMessage()throws EJBException,RemoteException;<br />}<br />//////////////////////////////////////////////////////////////////////////////分割线/////////////////////////////////////////////////////////////////////////////<br />/*<br /> * Generated by XDoclet - Do not edit!<br /> */<br />package com.interfaces;</p>
		<p>/**<br /> * Home interface for HelloWorld.<br /> * @xdoclet-generated at ${TODAY}<br /> * @copyright The XDoclet Team<br /> * @author XDoclet<br /> * @version ${version}<br /> */<br />public interface HelloWorldHome<br />   extends javax.ejb.EJBHome<br />{<br />   public static final String COMP_NAME="java:comp/env/ejb/HelloWorld";<br />   public static final String JNDI_NAME="ejb/HelloWorld";</p>
		<p>   public com.interfaces.HelloWorld create()<br />      throws javax.ejb.CreateException,java.rmi.RemoteException;</p>
		<p>}<br />/////////////////////////////////////////////////////////////////////////////分割线/////////////////////////////////////////////////////////////////////////////<br />/*<br /> * Generated file - Do not edit!<br /> */<br />package com.interfaces;</p>
		<p>/**<br /> * Utility class for HelloWorld.<br /> * @xdoclet-generated at ${TODAY}<br /> * @copyright The XDoclet Team<br /> * @author XDoclet<br /> * @version ${version}<br /> */<br />public class HelloWorldUtil<br />{<br />   /** Cached remote home (EJBHome). Uses lazy loading to obtain its value (loaded by getHome() methods). */<br />   private static com.interfaces.HelloWorldHome cachedRemoteHome = null;</p>
		<p>   private static Object lookupHome(java.util.Hashtable environment, String jndiName, Class narrowTo) throws javax.naming.NamingException {<br />      // Obtain initial context<br />      javax.naming.InitialContext initialContext = new javax.naming.InitialContext(environment);<br />      try {<br />         Object objRef = initialContext.lookup(jndiName);<br />         // only narrow if necessary<br />         if (java.rmi.Remote.class.isAssignableFrom(narrowTo))<br />            return javax.rmi.PortableRemoteObject.narrow(objRef, narrowTo);<br />         else<br />            return objRef;<br />      } finally {<br />         initialContext.close();<br />      }<br />   }</p>
		<p>   // Home interface lookup methods</p>
		<p>   /**<br />    * Obtain remote home interface from default initial context<br />    * @return Home interface for HelloWorld. Lookup using COMP_NAME<br />    */<br />   public static com.interfaces.HelloWorldHome getHome() throws javax.naming.NamingException<br />   {<br />      if (cachedRemoteHome == null) {<br />            cachedRemoteHome = (com.interfaces.HelloWorldHome) lookupHome(null, com.interfaces.HelloWorldHome.COMP_NAME, com.interfaces.HelloWorldHome.class);<br />      }<br />      return cachedRemoteHome;<br />   }</p>
		<p>   /**<br />    * Obtain remote home interface from parameterised initial context<br />    * @param environment Parameters to use for creating initial context<br />    * @return Home interface for HelloWorld. Lookup using COMP_NAME<br />    */<br />   public static com.interfaces.HelloWorldHome getHome( java.util.Hashtable environment ) throws javax.naming.NamingException<br />   {<br />       return (com.interfaces.HelloWorldHome) lookupHome(environment, com.interfaces.HelloWorldHome.COMP_NAME, com.interfaces.HelloWorldHome.class);<br />   }</p>
		<p>   /** Cached per JVM server IP. */<br />   private static String hexServerIP = null;</p>
		<p>   // initialise the secure random instance<br />   private static final java.security.SecureRandom seeder = new java.security.SecureRandom();</p>
		<p>   /**<br />    * A 32 byte GUID generator (Globally Unique ID). These artificial keys SHOULD &lt;strong&gt;NOT &lt;/strong&gt; be seen by the user,<br />    * not even touched by the DBA but with very rare exceptions, just manipulated by the database and the programs.<br />    *<br />    * Usage: Add an id field (type java.lang.String) to your EJB, and add setId(XXXUtil.generateGUID(this)); to the ejbCreate method.<br />    */<br />   public static final String generateGUID(Object o) {<br />       StringBuffer tmpBuffer = new StringBuffer(16);<br />       if (hexServerIP == null) {<br />           java.net.InetAddress localInetAddress = null;<br />           try {<br />               // get the inet address</p>
		<p>               localInetAddress = java.net.InetAddress.getLocalHost();<br />           }<br />           catch (java.net.UnknownHostException uhe) {<br />               System.err.println("HelloWorldUtil: Could not get the local IP address using InetAddress.getLocalHost()!");<br />               // todo: find better way to get around this...<br />               uhe.printStackTrace();<br />               return null;<br />           }<br />           byte serverIP[] = localInetAddress.getAddress();<br />           hexServerIP = hexFormat(getInt(serverIP), 8);<br />       }</p>
		<p>       String hashcode = hexFormat(System.identityHashCode(o), 8);<br />       tmpBuffer.append(hexServerIP);<br />       tmpBuffer.append(hashcode);</p>
		<p>       long timeNow      = System.currentTimeMillis();<br />       int timeLow       = (int)timeNow &amp; 0xFFFFFFFF;<br />       int node          = seeder.nextInt();</p>
		<p>       StringBuffer guid = new StringBuffer(32);<br />       guid.append(hexFormat(timeLow, 8));<br />       guid.append(tmpBuffer.toString());<br />       guid.append(hexFormat(node, 8));<br />       return guid.toString();<br />   }</p>
		<p>   private static int getInt(byte bytes[]) {<br />       int i = 0;<br />       int j = 24;<br />       for (int k = 0; j &gt;= 0; k++) {<br />           int l = bytes[k] &amp; 0xff;<br />           i += l &lt;&lt; j;<br />           j -= 8;<br />       }<br />       return i;<br />   }</p>
		<p>   private static String hexFormat(int i, int j) {<br />       String s = Integer.toHexString(i);<br />       return padHex(s, j) + s;<br />   }</p>
		<p>   private static String padHex(String s, int i) {<br />       StringBuffer tmpBuffer = new StringBuffer();<br />       if (s.length() &lt; i) {<br />           for (int j = 0; j &lt; i - s.length(); j++) {<br />               tmpBuffer.append('0');<br />           }<br />       }<br />       return tmpBuffer.toString();<br />   }<br />}<br />////////////////////////////////////////////////////////////////////////////////////////分割线///////////////////////////////////////////////////////////////////<br />配置文件如下：<br />ejb-jar.xml<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>
		<p>&lt;!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "<a href="http://java.sun.com/dtd/ejb-jar_2_0.dtd">http://java.sun.com/dtd/ejb-jar_2_0.dtd</a>"&gt;</p>
		<p>&lt;ejb-jar &gt;</p>
		<p>   &lt;description&gt;&lt;![CDATA[No Description.]]&gt;&lt;/description&gt;<br />   &lt;display-name&gt;Generated by XDoclet&lt;/display-name&gt;</p>
		<p>   &lt;enterprise-beans&gt;</p>
		<p>      &lt;!-- Session Beans --&gt;<br />      &lt;session &gt;<br />         &lt;description&gt;&lt;![CDATA[Description for HelloWorld]]&gt;&lt;/description&gt;<br />         &lt;display-name&gt;Name for HelloWorld&lt;/display-name&gt;</p>
		<p>         &lt;ejb-name&gt;HelloWorld&lt;/ejb-name&gt;</p>
		<p>         &lt;home&gt;com.interfaces.HelloWorldHome&lt;/home&gt;<br />         &lt;remote&gt;com.interfaces.HelloWorld&lt;/remote&gt;<br />         &lt;ejb-class&gt;com.ejb.HelloWorldSession&lt;/ejb-class&gt;<br />         &lt;session-type&gt;Stateless&lt;/session-type&gt;<br />         &lt;transaction-type&gt;Container&lt;/transaction-type&gt;</p>
		<p>      &lt;/session&gt;</p>
		<p>     &lt;!--<br />       To add session beans that you have deployment descriptor info for, add<br />       a file to your XDoclet merge directory called session-beans.xml that contains<br />       the &lt;session&gt;&lt;/session&gt; markup for those beans.<br />     --&gt;</p>
		<p>      &lt;!-- Entity Beans --&gt;<br />     &lt;!--<br />       To add entity beans that you have deployment descriptor info for, add<br />       a file to your XDoclet merge directory called entity-beans.xml that contains<br />       the &lt;entity&gt;&lt;/entity&gt; markup for those beans.<br />     --&gt;</p>
		<p>      &lt;!-- Message Driven Beans --&gt;<br />     &lt;!--<br />       To add message driven beans that you have deployment descriptor info for, add<br />       a file to your XDoclet merge directory called message-driven-beans.xml that contains<br />       the &lt;message-driven&gt;&lt;/message-driven&gt; markup for those beans.<br />     --&gt;</p>
		<p>   &lt;/enterprise-beans&gt;</p>
		<p>   &lt;!-- Relationships --&gt;</p>
		<p>   &lt;!-- Assembly Descriptor --&gt;<br />     &lt;!--<br />       To specify your own assembly descriptor info here, add a file to your<br />       XDoclet merge directory called assembly-descriptor.xml that contains<br />       the &lt;assembly-descriptor&gt;&lt;/assembly-descriptor&gt; markup.<br />     --&gt;</p>
		<p>   &lt;assembly-descriptor &gt;<br />     &lt;!--<br />       To specify additional security-role elements, add a file in the merge<br />       directory called ejb-security-roles.xml that contains them.<br />     --&gt;</p>
		<p>   &lt;!-- method permissions --&gt;<br />     &lt;!--<br />       To specify additional method-permission elements, add a file in the merge<br />       directory called ejb-method-permissions.ent that contains them.<br />     --&gt;</p>
		<p>   &lt;!-- transactions --&gt;<br />     &lt;!--<br />       To specify additional container-transaction elements, add a file in the merge<br />       directory called ejb-container-transactions.ent that contains them.<br />     --&gt;</p>
		<p>   &lt;!-- finder transactions --&gt;</p>
		<p>   &lt;!-- message destinations --&gt;<br />     &lt;!--<br />       To specify additional message-destination elements, add a file in the merge<br />       directory called ejb-message-destinations.ent that contains them.<br />     --&gt;</p>
		<p>   &lt;!-- exclude list --&gt;<br />     &lt;!--<br />       To specify an exclude-list element, add a file in the merge directory<br />       called ejb-exclude-list.xml that contains it.<br />     --&gt;<br />   &lt;/assembly-descriptor&gt;<br />&lt;/ejb-jar&gt;<br />//////////////////////////////////////////////////////////////////////////////分割线///////////////////////////////////////////////////////////////////////////<br />weblogic-ejb-jar.xml<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>
		<p>&lt;!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN" "<a href="http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd">http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd</a>"&gt;</p>
		<p>&lt;weblogic-ejb-jar&gt;<br /> &lt;description&gt;&lt;![CDATA[Generated by XDoclet]]&gt;&lt;/description&gt;<br />   &lt;weblogic-enterprise-bean&gt;<br />      &lt;ejb-name&gt;HelloWorld&lt;/ejb-name&gt;<br />      &lt;stateless-session-descriptor&gt;<br />      &lt;/stateless-session-descriptor&gt;<br />      &lt;reference-descriptor&gt;<br />      &lt;/reference-descriptor&gt;</p>
		<p>      &lt;jndi-name&gt;ejb/HelloWorld&lt;/jndi-name&gt;<br />   &lt;/weblogic-enterprise-bean&gt;<br />&lt;!-- <br />To add enterprise beans that you have deployment descriptor info for, add <br />a file to your XDoclet merge directory called weblogic-enterprise-beans.xml that contains <br />the &lt;weblogic-enterprise-bean&gt;&lt;/weblogic-enterprise-bean&gt; markup for those beans. <br />--&gt; </p>
		<p> &lt;!-- <br /> To add a security-role-assignment section, add <br /> a file to your XDoclet merge directory called weblogic-security-role-assignment.xml that contains <br /> the &lt;security-role-assignment&gt;&lt;/security-role-assignment&gt; markup. <br /> --&gt;  </p>
		<p> &lt;!-- <br /> To add a run-as-role-assignment section, add <br /> a file to your XDoclet merge directory called weblogic-run-as-role-assignment.xml that contains <br /> the &lt;run-as-role-assignment&gt;&lt;/run-as-role-assignment&gt; markup. <br /> --&gt; <br />&lt;/weblogic-ejb-jar&gt;<br />////////////////////////////////////////////////////////////////////////分割线///////////////////////////////////////////////////////////////////////////////////<br />打成JIA包部署到WEBLOGIC服务器。<br />最后是调用代码：<br />package com;</p>
		<p>import java.rmi.RemoteException;<br />import java.util.Properties;<br />  <br />import javax.ejb.CreateException;<br />import javax.naming.Context;<br />import javax.naming.InitialContext;<br />import javax.naming.NamingException;<br /> <br />import com.interfaces.HelloWorld;<br />import com.interfaces.HelloWorldHome;<br />import javax.rmi.PortableRemoteObject;</p>
		<p>public class EJBTest {</p>
		<p>     /**<br />      * @param args<br />     */<br />     public static void main(String[] args) throws Exception {<br />         // TODO 自动生成方法存根<br />         Properties properties=new Properties();<br />         properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");<br />         properties.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");<br />         <br />         Context context;<br />         try {<br />             context = new InitialContext(properties);<br />             HelloWorldHome hwh=(HelloWorldHome)context.lookup("ejb/HelloWorld");<br />             HelloWorld hw=hwh.create();<br />             String s=hw.getMessage();<br />             System.out.println(s);<br />         } catch (NamingException e) {<br />             // TODO 自动生成 catch 块<br />             e.printStackTrace();<br />         } catch (RemoteException e) {<br />             // TODO 自动生成 catch 块<br />             e.printStackTrace();<br />         } catch (CreateException e) {<br />             // TODO 自动生成 catch 块<br />             e.printStackTrace();<br />         }<br />      /*Properties properties=new Properties();<br />         properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");<br />         properties.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");<br />      Context context = new InitialContext(properties);<br />      Object obj = context.lookup("ejb/HelloWorld");<br />      HelloWorldHome home = (HelloWorldHome)PortableRemoteObject.narrow(obj,HelloWorldHome.class );<br />      HelloWorld hello = home.create();<br />      System.out.println(hello.getMessage());*/<br />     }  <br /> }<br /><br /><span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: Arial">部署</span><span lang="EN-US">EJB</span></p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21.25pt; TEXT-INDENT: -21.25pt; mso-list: l7 level1 lfo10; tab-stops: list 21.25pt">
				<strong>
						<span lang="EN-US" style="FONT-WEIGHT: normal; FONT-FAMILY: Arial; mso-bidi-font-weight: bold; mso-fareast-font-family: Arial">
								<span style="mso-list: Ignore">
										<font size="3">1.</font>
										<span style="FONT: 7pt 'Times New Roman'">        </span>
								</span>
						</span>
				</strong>
				<strong>
						<span lang="EN-US" style="FONT-FAMILY: Arial">
								<font size="3">MyEclipse &gt;Add and Remove Project Deployments 
<p></p></font>
						</span>
				</strong>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21.25pt; TEXT-INDENT: -21.25pt; mso-list: l7 level1 lfo10; tab-stops: list 21.25pt">
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">
								<font face="Times New Roman">
										<font size="3">2.</font>
										<span style="FONT: 7pt 'Times New Roman'">        </span>
								</font>
						</span>
				</span>
				<font size="3">
						<strong>
								<span style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-bidi-font-weight: bold; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">点击</span>
						</strong>
						<strong>
								<span lang="EN-US" style="FONT-FAMILY: Arial">add</span>
						</strong>
						<strong>
								<span style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-bidi-font-weight: bold; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，添加部署服务器</span>
						</strong>
						<strong>
								<span lang="EN-US" style="FONT-WEIGHT: normal; FONT-FAMILY: Arial; mso-bidi-font-weight: bold">weblogic</span>
						</strong>
						<strong>
								<span style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-bidi-font-weight: bold; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">。<br /></span>
						</strong>
				</font>
				<br />虽然能使用了，但还是有很多地方不太明白。慢慢进步咯！</p>
<img src ="http://www.blogjava.net/wukerit/aggbug/62529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wukerit/" target="_blank">KanIT</a> 2006-08-09 11:18 <a href="http://www.blogjava.net/wukerit/archive/2006/08/09/62529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>诸葛亮与IOC的关系</title><link>http://www.blogjava.net/wukerit/archive/2006/07/31/KenIT.html</link><dc:creator>KanIT</dc:creator><author>KanIT</author><pubDate>Mon, 31 Jul 2006 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/wukerit/archive/2006/07/31/KenIT.html</guid><wfw:comment>http://www.blogjava.net/wukerit/comments/60976.html</wfw:comment><comments>http://www.blogjava.net/wukerit/archive/2006/07/31/KenIT.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/wukerit/comments/commentRss/60976.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wukerit/services/trackbacks/60976.html</trackback:ping><description><![CDATA[
		<p>看过三国志的朋友都知道一句名言:万事具备,只欠东风.<br />最近在学习SPRING框架的时候对此又有了深层的理解.<br />最近开发一个几百人的大项目,由于某些因素,不能使用开源框架.我们开发人员商议,准备顺应潮流,使用SPRING框架的某些设计思想来完成工作.<br />由于大家都没有几百人一起工作的项目经验,所以开始阶段是痛苦而没有成效的.特别在商议相互调用的接口时,简直成了讨价还价的菜市场(每个人的想法,水平,及设计能力的差异).~_~!!!<br />百无聊赖中,跑去开三国(你们吵你们的吧,我休息先),看到诸葛亮借东风一节,突然灵机一动,这不就是SPRING框架的IOC思想么??我先万事具备再说,只欠东风就OK!想到这里,心中窃喜,于是将需要的接口数据整理出来写了个XML文档,并用DTD定义,直接扔给调用我的家伙,想用我的接口么??我就要这些数据,你看着办吧~~!<br />于是不管他渴求的表情,自己工作去也.那个心里爽啊~<br />下面是一些模拟代码,希望能有用:<br />/*定义依赖注入的数据接口*/<br />public interface IOCINTERFACE<br />{<br />   //只定义一个验证方法,验证DTD定义的数据<br />   public boolean validate();<br />}<br />////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////<br />/**/<br />class IOCObject implement IOCINTERFACE<br />{<br />   //需要注入的数据<br />   private String username;<br />   public void setUsername(String username)<br />   {<br />      this.username = username;<br />   }<br />   public String getUsername()<br />   {<br />      return this.username ;<br />   }<br />   //验证一下是否是我要的数据<br />   public boolean validate()<br />   {<br />      if(this.username = null)<br />      {<br />         return false;<br />      }<br />      return true;<br />   }<br />}<br />////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////<br />/*再定义一个执行接口*/<br />public interface OPERATION<br />{<br />   public void execute();<br />}<br />////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////<br />class Test implement OPERATION<br />{<br />   //定义操作对象<br />   private IOCObject obj;<br />   public void Test( IOCObject obj)<br />   {<br />      this.obj = obj;<br />   }<br />   public void execute()<br />   {<br />      if(this.obj.validate)<br />      {<br />         //处理业务逻辑<br />         System.out.println(this.obj.getUsername+"hello!");<br />      }<br />      else<br />      {<br />         //异常日志<br />            System.out.println("MB~~~给的什么数据啊~~我叼!")<br />      }<br />   }<br />}<br />////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////<br />/*万事具备了,借东风吧!*/<br />public class Main<br />{<br />   public static void main(String[]args)<br />   {<br />      //做个东风先<br />      IOCObject obj = new IOCObject ();<br />      obj .setUsername("KenIT");<br />      //依赖注入了,高兴啊!<br />      Test test = new Test(ob);<br />      //完成工作,打完收功<br />      test.execute();<br />   }<br />}<br />////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////<br />回想来发现IOC就是我们的诸葛老前辈发明的,居然.....,我强烈呼吁收版权税.<br />中华民族万岁~~~!</p>
<img src ="http://www.blogjava.net/wukerit/aggbug/60976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wukerit/" target="_blank">KanIT</a> 2006-07-31 11:22 <a href="http://www.blogjava.net/wukerit/archive/2006/07/31/KenIT.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>