首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

[转]ejb3.0+struts2.0调整

2012-10-07 
[转]ejb3.0+struts2.0整合最近在看Struts2和EJB3,出于好奇,就想试试用部署在tomcat上的struts2去访问部署

[转]ejb3.0+struts2.0整合
最近在看Struts2和EJB3,出于好奇,就想试试用部署在tomcat上的struts2去访问部署在jboss上的EJB3程序。对于EJB3之前只用过里面的jpa,感觉很好用,或者说注释很方便,比xml好用。谁知就这个程序耗了我三四个晚上的时间。现在终于搞定了,记录一下,也帮助后来者少走弯路。(感谢论坛id:小疯子的热情帮助^-^)
首先是Struts2的前端页面,so easy!!输入用户名密码,提交。。。。
代码如下:

Xml代码
        <form action="login.action" method="post">  
    name:<input type="text" name="name"/><br>  
    password:<input type="password" name="psd"/><br>  
    <input type="submit" value="submit">  
</form> 
         <form action="login.action" method="post">
name:<input type="text" name="name"/><br>
password:<input type="password" name="psd"/><br>
<input type="submit" value="submit">
</form>


配置web.xml文件

Xml代码
<filter>  
<filter-name>struts2</filter-name>  
    <filter-class>  
             org.apache.struts2.dispatcher.FilterDispatcher   
         </filter-class>  
      </filter>  
  
<filter-mapping>  
<filter-name>struts2</filter-name>  
<url-pattern>/*.action</url-pattern>  
</filter-mapping> 
    <filter>
  <filter-name>struts2</filter-name>
      <filter-class>
                org.apache.struts2.dispatcher.FilterDispatcher
            </filter-class>
         </filter>
 
    <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*.action</url-pattern>
    </filter-mapping>

接着是struts2.xml文件

Xml代码
<struts>  
    <!-- Add packages here -->  
    <package name="struts2" extends="struts-default">  
       <action name="login" extends="struts-default">
   <action name="login" encoding="UTF-8"?>  
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
    
    <persistence-unit name="loginDS">  
       
         <provider>  
           org.apache.openjpa.persistence.PersistenceProviderImpl   
        </provider>  
           
        <jta-data-source>java:/MySqlDS</jta-data-source>  
           
        <class>org.ivan.ejb.jpa.UserBean</class>  
           
           
    </persistence-unit>  
</persistence> 
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <persistence-unit name="loginDS">
   
         <provider>
           org.apache.openjpa.persistence.PersistenceProviderImpl
        </provider>
       
        <jta-data-source>java:/MySqlDS</jta-data-source>
       
        <class>org.ivan.ejb.jpa.UserBean</class>
       
       
    </persistence-unit>
</persistence>



好了,问题来了。。。。
它死活找不到数据源,网上搜了半天。。。。SessionBean访问数据源好像只能通过jta来配。。。。jta....从来没接触过。。就这个问题,郁闷了两天。最后终于解决了。。。
首先,到jboss-4.2.2.GA\docs\examples\jca目录下,看看,一堆配置文件。。。我用的mysql,就拷贝mysql-ds.xml到jboss-4.2.2.GA\server\default\deploy目录下。修改内容如下。

Xml代码
<datasources>  
  <local-tx-datasource>  
    <jndi-name>MySqlDS</jndi-name>  
    <connection-url>jdbc:mysql://localhost:3306/login</connection-url>  
    <driver-class>com.mysql.jdbc.Driver</driver-class>  
    <user-name>root</user-name>  
    <password>root</password>  
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>  
    <metadata>  
       <type-mapping>mySQL</type-mapping>  
    </metadata>  
  </local-tx-datasource>  
</datasources> 
<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/login</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>



应该很好懂吧。。。这就配置了mysql的数据源了。然后在persistence.xml里调用。
这一句

Xml代码
<jta-data-source>java:/MySqlDS</jta-data-source> 
<jta-data-source>java:/MySqlDS</jta-data-source>

呼,再运行,又报错。。。。。找不到mysql驱动。。。。。晕,这些东西我早放程序里面去了。。。。
火了,直接把jar包给拷贝到了jboss的lib里去了。。。。。。
搞定。。。晕。。。




哎,花了一周时间就写了这么个程序。还从没花这么长时间来入门的。单独的struts2,ejb3程序也就一次搞定的。两者结合就搞出这么多毛病来。
要学的东西实在是太多了啊。。。
jta,jndi,rmi,jboss......
之前只用过tomcat,jetty等web容器,也用过glassfish,也就当web容器用。。。看来应用服务器要复杂得多啊。努力。。。。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangpinggod/archive/2008/08/20/2801691.aspx

热点排行