JiveJdon Community Forums
在线219人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 开源JdonFramework及其应用案例论坛
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 16 回复 / 2 页 [ 1 2 下一页 ]  发表新帖子  回复该主题贴
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月16日 17:51 回复
<################################>Action: JdonFramework core entrance
2000-09-16 17:29:08,875 [http8080-Processor24] DEBUG com.jdon.bussinessproxy.dyncproxy.DynamicProxyWeaving - [JdonFramework]<################>execute method=com.jdon.jivejdon.service.ForumService.getForums
2000-09-16 17:29:08,875 [http8080-Processor24] DEBUG com.jdon.aop.AopClient - [JdonFramework] enter AOP invoker2 for:com.jdon.jivejdon.service.imp.ForumServiceImp method:getForums
2000-09-16 17:29:08,875 [http8080-Processor24] DEBUG com.jdon.aop.joinpoint.AdvisorChainFactory - [JdonFramework] enter create PointcutAdvisor
2000-09-16 17:29:08,875 [http8080-Processor24] ERROR com.jdon.util.Debug - com.jdon.aop.AopClient
java.lang.NullPointerException
at java.util.ArrayList.addAll(ArrayList.java:473)
at com.jdon.aop.joinpoint.AdvisorChainFactory.create(AdvisorChainFactory.java:58)
at com.jdon.aop.AopClient.invoke(AopClient.java:92)
at com.jdon.bussinessproxy.dyncproxy.DynamicProxyWeaving.invoke(DynamicProxyWeaving.java:62)
at $Proxy0.getForums(Unknown Source)
at com.jdon.jivejdon.presentation.action.ForumListAction.getPageIterator(ForumListAction.java:38)
at com.jdon.strutsutil.ModelListAction.execute(ModelListAction.java:69)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet.create(AdvisorChainFactory.java:58)
at com.jdon.aop.AopClient.invoke(AopClient.java:92)
... 48 more
2000-09-16 17:29:08,875 [http8080-Processor24] ERROR com.jdon.strutsutil.ModelListAction - getPageIterator not be implemented, you must implement either of them
2000-09-16 17:29:09,000 [http8080-Processor25] DEBUG com.jdon.controller.service.WebServiceFactory - <==============================>start: JdonFramework core entrance
2000-09-16 17:29:09,000 [http8080-Processor25] DEBUG com.jdon.controller.service.WebServiceFactory - <===============>Looking up new service='forumMessageQueryService'
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月16日 17:53 回复
由于发帖文字限制所以中间一部分错误信息被截取,下面是JDNI的配置信息:
<Context path="/jivejdon" docBase="C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\jivejdon" debug="0" reloadable="true">
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/security?user=root&password=3c508"
digest="MD5" userTable="user" userNameCol="name" userCredCol="password"
userRoleTable="role" roleNameCol="name"/>
-->

<Resource name="jdbc/jivejdon" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="jdbc/jivejdon">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/jivejdon</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>3c508</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
<Resource name="jdbc/security" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="jdbc/security">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/security</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>3c508</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月16日 17:54 回复
下面是daos.xml的配置情况
<!-- DataSource -->
<component name="jdbcTempSource"
class="com.jdon.jivejdon.dao.sql.JdbcTempSource">
<!-- JBoss JNDI-->
<!-- tomcat jndi <constructor value="java:/JiveJdonDS"/> -->
<constructor value="java:comp/env/jdbc/jivejdon"/>
</component>

<!-- DataSource for SSO -->
<component name="jdbcTempSSOSource"
class="com.jdon.jivejdon.dao.sql.JdbcTempSSOSource">
<!-- jboss jndi --> <!-- tomcat jndi <constructor value="java:/Security"/> -->
<constructor value="java:comp/env/jdbc/security"/>
</component>
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月16日 18:01 回复
权限部分我使用的是tomcat的tomcat_user.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="Admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="admin" password="admin" roles="Admin"/>
</tomcat-users>
现在的 情况是论坛的 页面可以出来,但论坛的内容出不来,用http://localhost:8080/jivejdon/admin入口登录后管理功能不能用,或出现权限错误,或内容无法列表,列表系统tcp链接,没有链接mysql数据库的链接。我用jboss服务器就正常。请banq大哥研究研究!
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月17日 12:03 回复
目前不能在Tomcat下使用JiveJdon3.

我已经在JiveJdon3 readme中说了,由于Tomcat的权限realm对角色数据表有特定要求,JiveJdon3没有符合其设计,所以,JiveJdon3只能在对角色数据表没有限定设计的服务器上使用,例如JBoss/Weblogic等。

另外一种可能市更改JiveJdon3的角色数据表,这个以后会考虑。
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月17日 13:11 回复
我正在分析您的jdon框架,并尝试着把JiveJdon运行在tomcat上,现在对框架的运行机理还不是很清楚,如果有问题请banq大哥不吝赐教.
个人认为快速与复杂是矛盾的,也就是快速与灵活性是矛盾的,jdon的定位很重要,限制越少,灵活性越高,但也复杂,掌握起来也越难.
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月22日 00:59 回复
最新情况:经过一周的调试,论坛在tomcat5.0下的部署有了点新进展,但有出现了下面错误,请banq大哥指个方向。

javax.naming.NameNotFoundException: Name TransactionManager is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:815)
at org.apache.naming.NamingContext.lookup(NamingContext.java:198)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.jdon.jivejdon.service.util.JtaTransactionUtil.<init>(JtaTransactionUtil.java:13)
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月22日 09:48 回复
这是有关JTA事务错误。

1.需要tomcat中有JTA.jar这样的Jar包。
2.需要有JTA JNDI名称,因为Tomcat缺省是不支持JTA的,所以,我也不知道其缺省的JTA JNDI名称是什么,你可以查查有关资料。

非常佩服你的能力,不过我前面说关于容器权限认证方面问题不知你是否明白?JiveJdon3的角色数据表设计不符合Tomcat的Realm规定的数据表格式,所以,就无法使用Tomcat的权限认证,JiveJdon3的权限登录机制无法启用。
http://www.onjava.com/pub/a/onjava/2002/06/12/form.html
http://tomcat.apache.org/tomcat-5.0-doc/realm-howto.html

如果你确实有所突破,也发布一下你的心得,帮助JiveJdon这个开源软件在Tomcat上有所发展。
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月22日 11:18 回复
从网上下了一个开源的jta包,现在试试在server.xml中配置jndi,仔细读了您的源码,对您的框架有了大概的了解,您说得JiveJdon3的角色数据表设计不符合Tomcat的Realm规定的数据表格式,我知道是什么意思,你的论坛权限是三个表,tomcat要求的是两个表,不过用tomcat_user.xml的方式大概可以解决这个问题。从您的框架代码中也看到了许多模式的实例,很有启发。
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月22日 22:06 回复
修改了JtaTransactionUtil.java这个文件的代码静态创建了transactonmanager这个对象,而不是从jndi查询,现在论坛基本正常了,但弊端就是系统被帮定到固定的jta实现上了,tomcat的jndi写法试了好几种都没弄好,没信心了。
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月22日 22:08 回复
对了,用户系统还不正常,现在只能在tomcat_user.xml中手动加
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月23日 06:58 回复
已经可以用正常方式验证用户了,我在权限认证数据表上加了一个视图就把三个表变成两个表了,哈哈
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月23日 19:41 回复
>我在权限认证数据表上加了一个视图就把三个表变成两个表
太棒了,能否将详细方法贴出来,我补充进入JiveJdon3中,这样让更多初学者分享,,JiveJdon3本身就是开源,需要靠大家来丰富它,我会注明作者版权的,谢谢。
[该贴被banq于2007年09月23日 19:43修改过]
ilovebbs

发表文章: 16
注册时间: 2007年09月16日 17:49
给他发消息
re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月23日 20:51 回复
要求在mysql5.0以上版本,因为只有5.0才支持视图
CREATE VIEW security.user_role_v AS
select rl.name AS Roles,u.name AS name
from ((security.role RL join security.user U)
join security.users_roles RU)
where ((u.userId = ru.userId)
and (ru.roleId = rl.roleId))

下面是在server.xml中的认证配置
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/security?user=root&password=3c508"
digest="MD5" userTable="user" userNameCol="name" userCredCol="password"
userRoleTable="user_role_v" roleNameCol="roles"/>



另有点不成熟的意见,如果把事务管理做成组件而不是到JDNI中搜索会不会更好一点,可能我说的不对,因为我在这方面的知识还很欠缺。

很高兴能为你的开源论坛尽点微薄之力,人人为我,我为人人。
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:re:tomcat5.0上部署jivejdon出现的问题,请banq大哥研究研究 发表: 2007年09月24日 10:35 回复
非常感谢, JTA需要在Tomcat中配置,是否使用JOTM的JTA?网上资料搜索有如下配置:
相关资料:
http://cymulacrum.net/writings/adv_tomcat/c225.html

在Tomcat中使用JDBC与JTA

关于为什么不在JdonFramework中整入JTA和权限认证,这两点我认为是使Spring变得复杂难用的一个原因,Spring在后来整入了JTA,致使其线程ThreadLocal方面异常复杂,很难保证不出错,另外一个开源Acegi实现权限认证,Acegi也是基于ThreadLocal异常复杂。

Spring虽然花了这么大力气的好处,就是能够在Tomcat这样Web容器运行标准的JEE程序,对于初学者Web程序员或者不理解JavaEE是个组件世界的人是一个好事。

JavaEE世界是一个组件世界,就象自助餐,每个应用就是需要自己动手配置,这样才能满足个性化的需求。初学者进入Java世界以后,迟早会意识到这个问题,会动手自己组合Jar包的。

一个框架如Spring为了使用者方便整入了很多的组件,但是不可能将所有组件都整合进去,这点不象.NET,.NET可以打包很多组件,那些都是微软自己生产的组件;但是在Java世界,有各种不同或者类似竞争的组件,Spring只能整入一两个,不可能全部整入,而且整入哪个也是一个困难判断依据,比如你今天整入Hibernate,明天要整入IBatis,如果Hibernate/IBatis有类似竞争开源组件,那么是否对其他组件不公平?

JTA/权限认证,这些都是在JavaEE标准文档规定的,必须是JavaEE服务器提供的功能,而且Weblogic/Webshere这些商业服务器为什么不会因为有JBoss/Tomcat而停止销售,他们的核心竞争力就是分布式事务以及集群,也就是说JTA事务是一个水很深,技术异常复杂的领域,作为轻量级开发框架JdonFramework还是把这些推给依赖服务器实现吧,自己只做一些更靠近业务的支持。

[该贴被banq于2007年09月24日 11:10修改过]
这个主题有 16 回复 / 2 页 [ 1 2 下一页 ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam