- 浏览: 381988 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
793059909:
scala> def count(x:Double,n: ...
快学Scala习题解答—第二章 控制结构和函数 -
793059909:
scala> def countdown(n:Int){ ...
快学Scala习题解答—第二章 控制结构和函数 -
daquan198163:
可是奇慢无比啊,切换个页签得等一分钟啊!!!!!!!!
误会ZK Studio了!Sorry,Sorry! -
rmn190:
受教了, 今天我第一天遇到这个问题, 以前没想到fmt标签还跟 ...
JSP中的国际化(转) -
suu:
都是栈里的拷贝 这句话让我从一头雾水到豁然开朗 谢谢了.
争论话题:Java传值还是传引用?
最近在看Struts2和EJB3,出于好奇,就想试试用部署在tomcat上的struts2去访问部署在jboss上的EJB3程序。对于EJB3之前只用过里面的jpa,感觉很好用,或者说注释很方便,比xml好用。谁知就这个程序耗了我三四个晚上的时间。现在终于搞定了,记录一下,也帮助后来者少走弯路。(感谢论坛id:小疯子的热情帮助^-^)
首先是Struts2的前端页面,so easy!!输入用户名密码,提交。。。。
代码如下:
配置web.xml文件
接着是struts2.xml文件
Action类
这些东西随便找本struts2的书籍,一看就知道了,不多说。
程序往tomcat里一部署就搞定了。。
到这里都没遇到问题。
下面编写EJB程序,一个sessionbean,有个方法check,接收name和password参数,验证是否为Ivan和dd。
代码如下:
实现类
ok.依然很顺。部署到jboss4.22上,看见这个bean了。
一直到这里都没卡住。。。。。窃喜。。。。
下面问题来了,开始两个程序的相互调用。
修改Action类里的execute方法。改成如下代码。
就这几行代码,我就折腾了一个晚上。。。。。晕。
首先,在1处,如果不创建Properties类,而写配置文件的话找不到配置文件。。。。它老找tomcat下的相应属性。(可能位置没放对,目前不清楚,待会再试试!)
再来,改成了目前这样的代码,运行,提示找不到org.jnp.interfaces.NamingContextFactory。。。。又搞一小时,需要把jboss目录下的client目录下的jar包添加到struts2程序的lib里。
接着,说找不到CheckBean接口。。。我已经把struts项目引了ejb项目了,依然没用,最后,拷贝了一份CheckBean到struts里面。
好不容易啊,终于有结果了。。。
再进一步,jpa访问数据库来验证数据。
数据库就两字段,name,password....
接着是EntityBean
继续,修改CheckBeanImpl里的代码,调用EntityBean访问数据库。
配置persistence.xml
好了,问题来了。。。。
它死活找不到数据源,网上搜了半天。。。。SessionBean访问数据源好像只能通过jta来配。。。。jta....从来没接触过。。就这个问题,郁闷了两天。最后终于解决了。。。
首先,到jboss-4.2.2.GA\docs\examples\jca目录下,看看,一堆配置文件。。。我用的mysql,就拷贝mysql-ds.xml到jboss-4.2.2.GA\server\default\deploy目录下。修改内容如下。
应该很好懂吧。。。这就配置了mysql的数据源了。然后在persistence.xml里调用。
这一句
呼,再运行,又报错。。。。。找不到mysql驱动。。。。。晕,这些东西我早放程序里面去了。。。。
火了,直接把jar包给拷贝到了jboss的lib里去了。。。。。。
搞定。。。晕。。。
哎,花了一周时间就写了这么个程序。还从没花这么长时间来入门的。单独的struts2,ejb3程序也就一次搞定的。两者结合就搞出这么多毛病来。
要学的东西实在是太多了啊。。。
jta,jndi,rmi,jboss......
之前只用过tomcat,jetty等web容器,也用过glassfish,也就当web容器用。。。看来应用服务器要复杂得多啊。努力。。。。
首先是Struts2的前端页面,so easy!!输入用户名密码,提交。。。。
代码如下:
<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文件
<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文件
<struts> <!-- Add packages here --> <package name="struts2" extends="struts-default"> <action name="login" class="org.ivan.struts2.LoginAction"> <result name="success">success.jsp</result> <result name="failture">failture.jsp</result> </action> </package> </struts>
Action类
package org.ivan.struts2; import java.util.Properties; import javax.naming.*; import org.ivan.ejb.CheckBean; import org.ivan.struts2.bean.Point; import org.jnp.interfaces.NamingContextFactory; public class LoginAction{ private String name; private String psd; private int age; private Point point; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsd() { return psd; } public void setPsd(String psd) { this.psd = psd; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Point getPoint() { return point; } public void setPoint(Point point) { this.point = point; } public String execute() throws Exception { if ("Ivan".equals(name.trim()) && "dd".equals(password.trim())) { return true; } return false; } }
这些东西随便找本struts2的书籍,一看就知道了,不多说。
程序往tomcat里一部署就搞定了。。
到这里都没遇到问题。
下面编写EJB程序,一个sessionbean,有个方法check,接收name和password参数,验证是否为Ivan和dd。
代码如下:
package org.ivan.ejb; public interface CheckBean { boolean check(String name,String password); }
实现类
package org.ivan.ejb.impl; import java.util.List; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.Query; import org.ivan.ejb.CheckBean; import org.ivan.ejb.jpa.UserBean; import org.ivan.ejb.util.JPAUtil; @Stateless @Remote public class CheckBeanImpl implements CheckBean { @Override public boolean check(String name, String password) { if ("Ivan".equals(name.trim()) && "dd".equals(password.trim())) { return true; } return false; } }
ok.依然很顺。部署到jboss4.22上,看见这个bean了。
一直到这里都没卡住。。。。。窃喜。。。。
下面问题来了,开始两个程序的相互调用。
修改Action类里的execute方法。改成如下代码。
public String execute() throws Exception { /*------------1---------------*/ Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url", "jnp://localhost:1099"); InitialContext context = new InitialContext(props); /*--------------2----------------*/ CheckBean checker = (CheckBean) context.lookup("CheckBeanImpl/remote"); if (checker.check(name, psd)) { return "success"; } return "failture"; }
就这几行代码,我就折腾了一个晚上。。。。。晕。
首先,在1处,如果不创建Properties类,而写配置文件的话找不到配置文件。。。。它老找tomcat下的相应属性。(可能位置没放对,目前不清楚,待会再试试!)
再来,改成了目前这样的代码,运行,提示找不到org.jnp.interfaces.NamingContextFactory。。。。又搞一小时,需要把jboss目录下的client目录下的jar包添加到struts2程序的lib里。
接着,说找不到CheckBean接口。。。我已经把struts项目引了ejb项目了,依然没用,最后,拷贝了一份CheckBean到struts里面。
好不容易啊,终于有结果了。。。
再进一步,jpa访问数据库来验证数据。
数据库就两字段,name,password....
接着是EntityBean
package org.ivan.ejb.jpa; import javax.persistence.Entity; import javax.persistence.Id; @Entity(name="user") public class UserBean { @Id private String name; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
继续,修改CheckBeanImpl里的代码,调用EntityBean访问数据库。
package org.ivan.ejb.impl; import java.util.List; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import org.ivan.ejb.CheckBean; import org.ivan.ejb.jpa.UserBean; import org.ivan.ejb.util.JPAUtil; @Stateless @Remote public class CheckBeanImpl implements CheckBean { @PersistenceContext(unitName="loginDS") //注入EntityManager,现在很流行注入啊,呵呵 EntityManager em ; @Override public boolean check(String name, String password) { // if ("Ivan".equals(name.trim()) && "dd".equals(password.trim())) { // return true; // } // return false; String sql = "SELECT u FROM user u WHERE u.name = :n AND u.password = :p"; Query query = em.createQuery(sql); query.setParameter("n", name); query.setParameter("p", password); List<UserBean> us = query.getResultList(); if(us.size() > 0){ return true; } return false; } }
配置persistence.xml
<?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目录下。修改内容如下。
<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里调用。
这一句
<jta-data-source>java:/MySqlDS</jta-data-source>
呼,再运行,又报错。。。。。找不到mysql驱动。。。。。晕,这些东西我早放程序里面去了。。。。
火了,直接把jar包给拷贝到了jboss的lib里去了。。。。。。
搞定。。。晕。。。
哎,花了一周时间就写了这么个程序。还从没花这么长时间来入门的。单独的struts2,ejb3程序也就一次搞定的。两者结合就搞出这么多毛病来。
要学的东西实在是太多了啊。。。
jta,jndi,rmi,jboss......
之前只用过tomcat,jetty等web容器,也用过glassfish,也就当web容器用。。。看来应用服务器要复杂得多啊。努力。。。。
发表评论
-
欢迎关注微信公众账号PigCode
2014-03-25 21:02 868开通了微信公众账号,欢迎大家关注: PigCode 不定 ... -
[FAQ]为什么引入lambda表达式
2013-07-02 20:54 1551Lambda表达式(闭包)在很多现代化的编程语言中很常见。在 ... -
[FAQ]什么是lambda表达式
2013-07-01 23:01 1461在一般数学计算中,lambda表达式就 ... -
Java&Scala比较---设计模式(Singleton)
2013-03-31 11:56 1280单例模式在Scala中就是一个默认实现的模式。 对于Java中 ... -
榨干Hello World:J2SE篇
2010-07-26 23:43 0昨天一时兴起想起这个问题(我好像一般都是一时兴起才会写 ... -
使用Ant部署项目细节问题及解决办法
2009-04-23 22:57 4064说原创也谈不上, ... -
重构?测试?TDD?Ant?
2009-04-11 23:56 2846很意外的,今天花 ... -
《重构:改善既有的代码设计》笔记
2009-03-21 15:30 0现在越看自己的代码越感觉恶心,感觉写得太糟糕了,根本见 ... -
5分钟搞定Schema
2008-12-18 21:38 3256事先声明:搞定不是精通,只是能够运用! 其实schema很简单 ... -
JNDI学习
2008-12-02 17:50 0之前接触过一点E ... -
Struts2源码研究1
2008-08-21 17:30 4970看struts2一周,就搞定了一个程序,郁闷。还有源码里的一个 ... -
将Struts2+EJB3程序从eclipse转移到Intellij Idea上
2008-08-20 16:12 2147之前写了个Struts2+EJB3的入门程序,好不容易搞 ... -
集成jdk到editplus(转)
2008-04-11 21:11 1615对于像我这样的java新手,写java程序用edit ... -
Intellij idea性能优化
2008-03-24 12:54 9099-Xms256m -Xmx384m -XX:MaxPermSi ... -
Struts meets Swing 1 (翻译)
2008-03-13 13:49 2058原文:http://javaboutique.internet ... -
使用Maven2快速创建项目(转)
2008-01-30 16:33 13015源地址:http://www.intellij.org.cn/ ... -
什么是Spring(转)
2008-01-16 13:00 1642最近研究Spring,她包含 ... -
JSP中的国际化(转)
2008-01-09 09:17 10308地区确定和本地化 设计多语言 web 应用程序时,您必须首先决 ... -
Intellij IDEA的部署问题。。。
2008-01-03 17:22 5283在网上偶尔都能看到说Intellij IDEA是如何的好 ... -
JasperReports Web Application Sample (翻译)
2007-12-20 14:20 4457Web Application Sample This sam ...
相关推荐
(2)EJB入门样例 EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //...
(2)EJB入门样例 EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //...
(2)EJB入门样例 EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //...
(2)EJB入门样例 EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //...
第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...
jsp2.0(1) Spring(1) C#游戏编程(附几个游戏的源代码)(1) 使用ADO.NET和XML开发数据库应用程序(1) EJB-CMP_CMR(1) JSP(1) c#连接数据库完整代码(1) Hibernate(1) 语言规范(1) 2.0(1) Struts(1) 绝对值得下载的资料...
EJB3与Struts与Spring整合开发(SSE),很不错的,可以借鉴下,提意见(EJB Bean放在JBoss服务器上,Web放在Tomcat服务器上)这入门程序,主要看配置
第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...
第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...
第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...
Java EE包括2个体系:标准(上面介绍的)+流行(Struts+Hibernate+Spring) 两套体系都是JSP+Servlet为基础。 2 JSP会涉及哪些内容 JSP语法基础(Java+HTML): 对于Java,需要掌握Java的基本语法(类...
1.7 struts1和truts2比较 1.8 Tomcat5启动流程与配置详解 1.9 HttpServlet详解 1.10 Ant使用入门 1.11 Maven Ant之间的比较 1.12 详解MANIFEST.MF文件 1.13 Maven入门--概念与实例 1.14 Subversion 1.15 jar...
Struts原理、开发及项目实施 Holen 2002-9-12 <br/>1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点...
第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...
本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...
6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4 将Spring与JSF集成 226 6.4.1 问题 226 6.4.2 解决方案 226 6.4.3 工作原理 227 6.5 将Spring与DWR...
基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。Struts是一个web framwork,而不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...