请教apache2.2安装教程.3整合Jboss4.2.2的问题

System:Linux5.5 x86_64
Author:hx10
Date:&hangzhou
Blog:http://hx100.
IP:192.168.145.129
软件列表如下:
jdk-6u11-linux-x64.bin
jboss-4.2.3.GA.zip
httpd-2.2.16.tar.gz
mod_jk-1.2.30-httpd-2.2.X.so
都放到/usr/local/目录下
第一步、安装jdk
cd /usr/local/
chmod +x jdk-6u11-linux-x64.bin
./jdk-6u11-linux-x64.bin
设置环境变量
vim /etc/profile
source /etc/profile
[root@linux local]# java -version
第二步、安装jboss
cd /usr/local/
unzip jboss-4.2.3.GA.zip
第三步、安装apache
wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo
yum -y install zlib-devel
如果不安装,报错如下:
tar -zxvf httpd-2.2.16.tar.gz
cd httpd-2.2.16
make install
第四步、使用mod.jk来结合apache和jboss
4-1、先安装mod.jk
下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
cd /usr/local/src
wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/x86_64/mod_jk-1.2.30-httpd-2.2.X.so
cp mod_jk-1.2.30-httpd-2.2.X.so /usr/local/apache/modules/mod_jk.so
安装mod_jk.so的,测试通过的
tar –zxvf tomcat-connectors-1.2.30-src.tar.gz
cd tomcat-connectors-1.2.23-src
./configure --with-apxs=/usr/local/apache/bin/apxs
cp ./apache-2.0/mod_jk.so /usr/local/apache/modules/
4-2、修改apache的配置文件
vim /usr/local/apache/conf/httpd.conf
查找LoadModule,在这一段最后添加
3. 增加一个配置文件,就在vhost下面
5.添加默认首页
4-3、增加mod_jk配置文件
在/usr/local/apache/conf/下面建立两个配置文件mod_jk.conf和workers.properties
cd /usr/local/apache/conf/
vim mod_jk.conf
注释如下:
# 指出以下mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache/conf/workers.properties
# 指出 mod_jk 模块的日志输出位置
JkLogFile /usr/local/apache/logs/mod_jk.log
# 设置 mod_jk 模块的日志级别 [debug/error/info]
JkLogLevel info
# 设置 mod_jk 模块的日志格式
JkLogStampFormat &[%a %b %d %H:%M:%S %Y]&
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat &%w %V %T&
# 将所有对特定文件或目录的请求通过ajp13的协议送给JBoss,让JBoss服务器来处理
#(用于测试配置是否成功,配置成功后请注释)
JkMount /web-console/* worker1
# 将所有对后台(带有/xxxx目录)的请求通过ajp13的协议送给JBoss,让JBoss服务器来处理
JkMount /xxxx/* worker1
vim workers.properties
4-5、配置apache的vhost
配置/usr/local/apache/conf/extra/httpd-vhosts.conf,增加mod_jk的配置
vim /usr/local/apache/conf/extra/httpd-vhosts.conf
4-6、修改jboss配置文件
jboss默认的端口是8080,可以注视掉,通过8009交给apache来解析
cd /usr/local/jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer
vim server.xml
这这一段注视掉
4-7、启动和停止
最后启动apache和jboss
/usr/local/apache/bin/apachectl start
setsid /usr/local/jboss-4.2.3.GA/bin/run.sh -b 0.0.0.0
最后来一个展示(jmx-console后面需要一个/)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:160918次
积分:2281
积分:2281
排名:第8855名
原创:43篇
转载:157篇
评论:23条
(1)(1)(2)(1)(1)(8)(8)(9)(3)(6)(4)(27)(19)(12)(1)(1)(2)(5)(21)(20)(28)(2)(3)(1)(10)(1)(6)Jboss 4.2.3 集群配置方法
-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
一、准备工作
安装JDK 1.5或以上版本,Jboss 4.2.3,apache 2.2.x, mod_jk.so
配置JAVA_HOME, JBOSS_HOME,APACHE_HOME环境变量
其中 mod_jk是apache服务器连接Jboss的插件
& & 假设有两台服务器都安装了jboss, 其IP地址分别为192.168.1.100, 192.168.1.101
& & 为了理清配置的步骤,我们采用$JBOSS_HOME/server/default 的配置目录,而不是直接使用$JBOSS_HOME/server/all的配置目录。由于default配置不支持集群,因此首先需要将all配置的某些依赖包和配置文件拷贝到defaut配置的目录中。
& & &2.1 拷贝用于集群的依赖包和配置文件
& & & & & & 将$JBOSS_HOME/all/lib下的 jbossha.jar, jgroups.jar和jboss-cache-jdk50.jar 拷贝到$JBOSS_HOME/default/lib 目录下, 再把$JBOSS_HOME/server/all/deploy目录里的cluster-service.xml 和jboss-web.cluster.sar文件夹拷贝到$JBOSS_HOME/server/default/deploy目录下. &另一台服务器也进行同样操作
& & & & && jbossha.jar 用于加载org.jboss.ha.framework.server.ClusterPartition,
jgroups.jar 用于支持Jboss集群底层通信
jboss-cache-jdk50.jar 用于加载org.jboss.cache.aop.TreeCacheAop
& & & 2.2 修改配置文件
打开$JBOSS_HOME/server/default/deploy/jboss-web.deployer/server.xml,将&&Engine name="jboss.web" defaultHost="localhost"& 改为 &Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1"&. 其中jvmRoute是用来让Apache服务器识别节点名称的(名称可以随便起,只要跟下面的配置文件workers.properties中指定的节点名称相同即可)。同理,更改另一台服务器的server.xml文件(注意:节点名称不能重复&。
打开$JBOSS_HOME/server/default/deploy/jboss-web.deployer/ROOT.war/WEB-INF/web.xml ,在&web-app&的末尾添加 &distributable/& 标记
打开$JBOSS_HOME/server/default/deploy/jboss-web.deployer/META-INF/jboss-service.xml,把&attribute name="UseJK"&false&/attribute& 中false改为true. 这样会采用粘性sesson策略,也即每个session都会由一台特定的jboss 处理.
配置Java Web应用项目。 在Java Web应用项目的WEB-INF文件夹内添加jboss-web.xml ,内容是:
&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd"&
&jboss-web&
&replication-config&
&replication-trigger&SET_AND_NON_PRIMITIVE_GET&/replication-trigger&
&replication-granularity&SESSION&/replication-granularity&
&replication-field-batch-mode&true&/replication-field-batch-mode&
&/replication-config&
&context-root&/jspdemo&/context-root&
&!-- 这里替换你的Java Web应用名 --&
&/jboss-web&
配置Apache服务器
&&&&&&&&& & a) 打开$APACHE_HOME/conf/httpd.conf, 在末尾添加如下的配置:
# 加载mod_jk.so 模块
LoadModule jk_module modules/mod_jk.so
# 配置 mod_jk.so模块
JkWorkersFile conf/workers.properties
# 指定哪些请求交由jboss处理
JkMountFile conf/uriworkermap.properties
# mod_jk插件的日志
JkLogFile logs/mod_jk.log
# mod_jk 的日志级别
JkLogLevel warn
& & & & & & &b) 建立$APACHE_HOME/conf/workers.properties文件,内容为:
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status
# Define Node1
# modify the host as your host IP or DNS name and your AJP 1.3 port
worker.node1.port=6009
worker.node1.host=127.0.0.1
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.socket_timeout=60
worker.node1.connection_pool_timeout=60
worker.node1.ping_mode=A
worker.node1.ping_timeout=20000
worker.node1.connect_timeout=20000
# Define Node2
# modify the host as your host IP or DNS name and your AJP 1.3 port
worker.node2.port=7009
worker.node2.host=127.0.0.1
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.socket_timeout=60
worker.node2.connection_pool_timeout=60
worker.node2.ping_mode=A
worker.node2.ping_timeout=20000
worker.node2.connect_timeout=20000
# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=false
# Status worker for managing load balancer
worker.status.type=status
&&&&&&&&& & c) 建立$APACHE_HOME/conf/uriworkermap.properties文件,内容为:
# 这里表示所有的请求都交给负载均衡器(也就是mod_jk.so这个模块)进行转发
/*=loadbalancer
#你可以声明对某些静态资源的请求无需交给jboss处理. 这样的话,你需要把这部分静态资源(比如gif, jpg, css等文件)拷贝到
# Apache服务器的部署目录中
#!/*.gif=loadbalancer
#!/*.jpg=loadbalancer
#!/*.png=loadbalancer
#!/*.css=loadbalancer
#!/*.js=loadbalancer
#!/*.htm=loadbalancer
#!/*.html=loadbalancer
& & & & & & &d) 将mod_jk.so 拷贝到$APACHE_HOME/modules
& & & &在两台Jboss服务器上部署一个相同的Java Web项目(比如通过session缓存记录JSP页面的访问次数)。 启动进Apache, Jboss进行测试
原文地址:
相关资讯  — 
相关文档  — 
发布时间: 10:57:19
同类热门经验
5781次浏览
9799次浏览
8832次浏览
8414次浏览
7787次浏览
5872次浏览
OPEN-OPEN, all rights reserved.Spring 2.5.6 + Struts 2.1.6 + Hibernate 3.3.1 GA + Jboss 4.2.2 整合 - tea_pig - 博客园
首先就着手解决包的问题
从网上东拼西凑的文章中,然后一个一个包的测试,首先我先在Tomcat下测试的。所以其中多了几个tomcat需要的commons包。
首先贴一下Web.xml文件的内容吧。
&?xml&version="1.0"&encoding="UTF-8"?&&web-app&version="2.5"&xmlns="/xml/ns/javaee"&&&&xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&&&&xsi:schemaLocation="/xml/ns/javaee&&&&&/xml/ns/javaee/web-app_2_5.xsd"&&&&&&session-config&&&&&&&&&&session-timeout&<span style="color: #&/session-timeout&&&&&&/session-config&&&&&&!--&log4j配置文件&--&&&&&&context-param&&&&&&&&&&param-name&log4jConfigLocation&/param-name&&&&&&&&&&param-value&/WEB-INF/classes/log4j.properties&/param-value&&&&&&/context-param&&&&&&!--&Spring配置文件位置&--&&&&&&context-param&&&&&&&&&&param-name&contextConfigLocation&/param-name&&&&&&&&&&param-value&/WEB-INF/classes/applicationContext.xml&/param-value&&&&&&/context-param&&&&&&!--&加载Spring配置文件&--&&&&&&listener&&&&&&&&&&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&&&&&&/listener&&&&&&!--解决Hibernate延迟加载出现的问题,需要放到struts2过滤器之前--&&&&&&filter&&&&&&&&&&filter-name&lazyLoadingFilter&/filter-name&&&&&&&&&&filter-class&&&&&&&&&&&&&org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&/filter-class&&&&&&/filter&&&&&&!--&Struts过滤器&--&&&&&&filter&&&&&&&&&&filter-name&struts2&/filter-name&&&&&&&&&&filter-class&org.apache.struts2.dispatcher.FilterDispatcher&/filter-class&&&&&&/filter&&&&&&!--解决Hibernate延迟加载出现的问题,仍需要放到struts2过滤器mapping之前--&&&&&&filter-mapping&&&&&&&&&&filter-name&lazyLoadingFilter&/filter-name&&&&&&&&&&url-pattern&*.action&/url-pattern&&&&&&/filter-mapping&&&&&&filter-mapping&&&&&&&&&&filter-name&struts2&/filter-name&&&&&&&&&&url-pattern&/*&/url-pattern&&&&&&&&&&dispatcher&REQUEST&/dispatcher&&&&&&&&&&dispatcher&FORWARD&/dispatcher&&&&&&/filter-mapping&&&&&&filter&&&&&&&&&&filter-name&EncodeFilter&/filter-name&&&&&&&&&&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&&&&&&&&&&init-param&&&&&&&&&&&&&&param-name&encoding&/param-name&&&&&&&&&&&&&&param-value&UTF-8&/param-value&&&&&&&&&&/init-param&&&&&&/filter&&&&&&filter-mapping&&&&&&&&&&filter-name&EncodeFilter&/filter-name&&&&&&&&&&url-pattern&/*&/url-pattern&&&&&&/filter-mapping&&&&&&welcome-file-list&&&&&&&&&&welcome-file&index.jsp&/welcome-file&&&&&&/welcome-file-list&&/web-app&
然后再贴一下applicationContext.xml文件的内容。毕竟是spring配置,最核心的东西,把所有其他框架整合到一起的枢纽。
&?xml&version="1.0"&encoding="UTF-8"&?&&beans&xmlns="http://www.springframework.org/schema/beans"&&&&xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&xmlns:p="http://www.springframework.org/schema/p"&&&&xmlns:aop="http://www.springframework.org/schema/aop"&xmlns:tx="http://www.springframework.org/schema/tx"&&&&xmlns:context="http://www.springframework.org/schema/context"&&&&xsi:schemaLocation="http://www.springframework.org/schema/beans&http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&&&&&&&&&&&&&&http://www.springframework.org/schema/aop&http://www.springframework.org/schema/aop/spring-aop-2.5.xsd&&&&&&&&&&&&&&http://www.springframework.org/schema/tx&http://www.springframework.org/schema/tx/spring-tx-2.5.xsd&&&&&&&&&&&&&&http://www.springframework.org/schema/context&http://www.springframework.org/schema/context/spring-context-2.5.xsd"&&&&&&description&Spring公共配置文件&/description&&&&&&!--&启用注解&--&&&&&&context:annotation-config&/&&&&&&!--&使用annotation&自动注册bean,并保证@Required,@Autowired的属性被注入&--&&&&&&context:component-scan&base-package="s"&/&&&&&&!--&定义数据源的Bean&,提供给Hibernate的sessionFactory--&&&&&&bean&id="dataSource"&class="org.springframework.jndi.JndiObjectFactoryBean"&&&&&&&&&&property&name="jndiName"&value="java:/MySqlDS"&/&&&&&&/bean&&&&&&!--&&&&&定义数据源的Bean&,提供给Hibernate的sessionFactory--&&!--&&&&&&&&&bean&id="dataSource"&class="mons.dbcp.BasicDataSource"&--&&!--&&&&&&&&&&&&&property&name="driverClassName"&value="com.mysql.jdbc.Driver"&--&&!--&&&&&&&&&&&&&/property&--&&!--&&&&&&&&&&&&&property&name="url"&value="jdbc:mysql://localhost:3306/TPig"&--&&!--&&&&&&&&&&&&&/property&--&&!--&&&&&&&&&&&&&property&name="username"&value="root"&&/property&--&&!--&&&&&&&&&&&&&property&name="password"&value="admin"&&/property&--&&!--&&&&&&&&&/bean&--&&&&&&!--&定义Hibernate的sessionFactory,通过该Bean,可以获得Hibernate的Session--&&&&&&bean&id="sessionFactory"&&&&&&&&class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&&&&&&&&&&property&name="dataSource"&&&&&&&&&&&&&&ref&bean="dataSource"&/&&&&&&&&&&/property&&&&&&&&&&!--&自动扫描Class的hibernate映射文件&--&&&&&&&&&&property&name="packagesToScan"&&&&&&&&&&&&&&list&&&&&&&&&&&&&&&&&&!--若写成model.*&则映射不到,还没有来得及看源代码&--&&&&&&&&&&&&&&&&&&value&*&/value&&&&&&&&&&&&&&/list&&&&&&&&&&/property&&&&&&&&&&property&name="hibernateProperties"&&&&&&&&&&&&&&props&&&&&&&&&&&&&&&&&&prop&key="hibernate.dialect"&org.hibernate.dialect.MySQLDialect&/prop&&&&&&&&&&&&&&&&&&prop&key="hibernate.show_sql"&true&/prop&&&&&&&&&&&&&&/props&&&&&&&&&&/property&&&&&&&&&&!--&使用配置文件方式&--&&&&&&&&&&!--&&&&&&&&&property&name="mappingResources"&--&&&&&&&&&&!--&&&&&&&&&&&&&list&--&&&&&&&&&&!--&&&&&&&&&&&&&&&&&value&model/TbUser.hbm.xml&/value&--&&&&&&&&&&!--&&&&&&&&&&&&&/list&--&&&&&&&&&&!--&&&&&&&&&/property&--&&&&&&/bean&&&&&&!--========================&事务配置&========================--&&&&&&!--&配置事务管理器&--&&&&&&bean&id="transactionManager"&&&&&&&&class="org.springframework.orm.hibernate3.HibernateTransactionManager"&&&&&&&&&&property&name="sessionFactory"&&&&&&&&&&&&&&ref&local="sessionFactory"&/&&&&&&&&&&/property&&&&&&/bean&&&&&&!--&配置事务特性&,配置add、delete和update开始的方法,事务传播特性为required--&&&&&&tx:advice&id="txAdvice"&transaction-manager="transactionManager"&&&&&&&&&&tx:attributes&&&&&&&&&&&&&&tx:method&name="insert*"&propagation="REQUIRED"&/&&&&&&&&&&&&&&tx:method&name="delete*"&propagation="REQUIRED"&/&&&&&&&&&&&&&&tx:method&name="update*"&propagation="REQUIRED"&/&&&&&&&&&&&&&&tx:method&name="*"&read-only="true"&/&&&&&&&&&&/tx:attributes&&&&&&/tx:advice&&&&&&!--&&&&&&&&配置那些类的方法进行事务管理,当前s.*.service包中的子包、类中所有方法需要,还需要参考tx:advice的设置&&&&--&&&&&&aop:config&&&&&&&&&&aop:pointcut&id="allManagerMethod"&&&&&&&&&&&&expression="execution&(*&s.*.service.*.*(..))"&/&&&&&&&&&&aop:advisor&advice-ref="txAdvice"&pointcut-ref="allManagerMethod"&/&&&&&&/aop:config&&/beans&
在里面也包含了另一个使用Tomcat的DataSource,已经注释起来了。我后面使用的Jboss,所以就先注释起来了。
最后一个配置文件就是struts.xml的内容了
&?xml&version="1.0"&encoding="UTF-8"&?&&!DOCTYPE&struts&PUBLIC&&&&&&&&"-//Apache&Software&Foundation//DTD&Struts&Configuration&2.0//EN"&&&&&&&&"http://struts.apache.org/dtds/struts-2.0.dtd"&&struts&&&&&&constant&name="struts.action.extension"&value="shtml"&/&&&&&&constant&name="struts.objectFactory"&value="spring"&/&&&&&&include&file="struts-default.xml"&/&&&&&&package&name="default"&extends="struts-default"&&&&&&&&&&interceptors&&&&&&&&&&&&&&interceptor-stack&name="defaultStack"&&/interceptor-stack&&&&&&&&&&/interceptors&&&&&&&&&&global-results&&&&&&&&&&&&&&result&name="error"&/error.jsp&/result&&&&&&&&&&/global-results&&&&&&/package&&&&&&include&file="struts-login.xml"&/&&/struts&
为了业务区分,我把struts文件放不同文件中
struts-login.xml 的内容
&?xml&version="1.0"&encoding="UTF-8"&?&&!DOCTYPE&struts&PUBLIC&&&&&&&&"-//Apache&Software&Foundation//DTD&Struts&Configuration&2.0//EN"&&&&&&&&"http://struts.apache.org/dtds/struts-2.0.dtd"&&struts&&&&&&package&name="user"&extends="default"&&&&&&&&&&!--登录界面&--&&&&&&&&&&action&name="login"&class="s.login.action.UserLoginAction"&&&&&&&&&&&&method="login"&&&&&&&&&&&&&&result&name="success"&&&&&&&&&&&&&&&&&/jsp/login.jsp&&&&&&&&&&&&&/result&&&&&&&&&&/action&&&&&&&&&&action&name="loginError"&class="s.login.action.UserLoginAction"&&&&&&&&&&&&method="error"&&&&&&&&&&&&&&result&name="success"&&&&&&&&&&&&&&&&&/jsp/error.jsp&&&&&&&&&&&&&/result&&&&&&&&&&/action&&&&&&&&&&&&&&/package&&/struts&
最后需要贴一下jboss数据库连接的文件mysql-ds.xml。原始的文件在\jboss-4.2.2.GA\docs\examples\jca目录下,然后就看你链接什么数据库了,我使用的是mysql,所以复制了mysql-ds.xml,把它复制到\jboss-4.2.2.GA\server\default\deploy目录下面,因为我的工程是部署在这个下面的。
&?xml&version="1.0"&encoding="UTF-8"?&&!--&$Id:&mysql-ds.xml&-05-21&16:26:06Z&rrajesh&$&--&&!--&&Datasource&config&for&MySQL&using&3.0.9&available&from:/downloads/api-jdbc-stable.html--&&datasources&&&&local-tx-datasource&&&&&&jndi-name&MySqlDS&/jndi-name&&&&&&connection-url&jdbc:mysql://127.0.0.1:3306/TPig&/connection-url&&&&&&driver-class&com.mysql.jdbc.Driver&/driver-class&&&&&&user-name&root&/user-name&&&&&&password&admin&/password&&&&&&exception-sorter-class-name&org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter&/exception-sorter-class-name&&&&&&!--&should&only&be&used&on&drivers&after&3.22.1&with&"ping"&support&&&&&valid-connection-checker-class-name&org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker&/valid-connection-checker-class-name&&&&&--&&&&&&!--&sql&to&call&when&connection&is&created&&&&&new-connection-sql&some&arbitrary&sql&/new-connection-sql&&&&&&&--&&&&&&!--&sql&to&call&on&an&existing&pooled&connection&when&it&is&obtained&from&pool&-&MySQLValidConnectionChecker&is&preferred&for&newer&drivers&&&&&check-valid-connection-sql&some&arbitrary&sql&/check-valid-connection-sql&&&&&&&--&&&&&&!--&corresponding&type-mapping&in&the&standardjbosscmp-jdbc.xml&--&&&&&&metadata&&&&&&&&&type-mapping&mySQL&/type-mapping&&&&&&/metadata&&&&/local-tx-datasource&&/datasources&
&接着我这里贴一下我的测试代码
Action部分
/**&*&Create&by&TPig&*&Since&2010上午09:43:36&*/package&s.login.import&org.springframework.beans.factory.annotation.Aimport&org.springframework.beans.factory.annotation.Qimport&s.base.BaseAimport&s.login.service.IUserLoginS/**&*&类说明:&*&Create&by&TPig&*&Since&2010上午09:43:36&*/@SuppressWarnings("serial")public&class&UserLoginAction&extends&BaseAction&{&&&&/**&&&&&*&用户登录测试接口&&&&&*/&&&&@Autowired&&&&@Qualifier("userLoginService")&&&&private&IUserLoginService&userLoginS&&&&/**&&&&&*&@return&the&name&&&&&*/&&&&public&String&getName()&{&&&&&&&&return&&&&&}&&&&/**&&&&&*&@param&name&the&name&to&set&&&&&*/&&&&public&void&setName(String&name)&{&&&&&&&&this.name&=&&&&&}&&&&public&String&login()&{&&&&&&&&this.userLoginService.userTest();&&&&&&&&this.name&=&"test";&&&&&&&&return&SUCCESS;&&&&}&&&&public&String&error()&{&&&&&&&&return&SUCCESS;&&&&}&&&&private&String&}
Service部分
/**&*&Create&by&TPig&*&Since&2010上午09:47:35&*/package&s.login.service.import&org.springframework.beans.factory.annotation.Aimport&org.springframework.stereotype.Simport&s.base.impl.BaseServiceIimport&s.login.dao.IUserLoginDimport&s.login.service.IUserLoginS/**&*&类说明:&*&Create&by&TPig&*&Since&2010上午09:47:35&*/@Service("userLoginService")public&class&UserLoginServiceImpl&extends&BaseServiceImpl&implements&IUserLoginService&{&&&&@Autowired&&&&private&IUserLoginDao&userLoginD&&&&/*&&&&&*&(non-Javadoc)&&&&&*&@see&s.userlogin.service.IUserLoginService#userTest()&&&&&*/&&&&public&String&userTest()&{&&&&&&&&System.out.println("==============进入Service==================");&&&&&&&&this.userLoginDao.daoTest();&&&&&&&&return&"test";&&&&}}
/**&*&Create&by&TPig&*&Since&2010上午10:31:15&*/package&s.login.dao.import&java.util.Limport&model.TbUimport&org.springframework.stereotype.Rimport&s.base.impl.BaseDaoIimport&s.login.dao.IUserLoginD/**&*&类说明:&*&Create&by&TPig&*&Since&2010上午10:31:15&*/@Repository("userLoginDao")public&class&UserLoginDaoImpl&extends&BaseDaoImpl&implements&IUserLoginDao&{&&&&/*&&&&&*&(non-Javadoc)&&&&&*&@see&s.userlogin.dao.IUserLoginDao#daoTest()&&&&&*/&&&&@SuppressWarnings("unchecked")&&&&public&void&daoTest()&{&&&&&&&&System.out.println("=================进入DAO==================");&&&&&&&&String&hql&=&"from&TbUser";&&&&&&&&List&TbUser&&userList&=&this.getHibernateTemplate().find(hql);&&&&&&&&for&(TbUser&tbUser&:&userList)&{&&&&&&&&&&&&System.out.println(tbUser.getText());&&&&&&&&}&&&&}}
/**&*&Create&by&TPig&*&Since&2010下午10:39:05&*/package&import&javax.persistence.Cimport&javax.persistence.Eimport&javax.persistence.GeneratedVimport&javax.persistence.Id;import&javax.persistence.T/**&*&类说明:&*&Create&by&TPig&*&Since&2010下午10:39:05&*/@Entity@Table(name="tb_user")public&class&TbUser&{&&&&@Id&&&&@GeneratedValue&&&&@Column(name="id")&&&&private&int&&&&&@Column(name="user")&&&&private&String&&&&&@Column(name="text")&&&&private&String&&&&&/**&&&&&*&构造函数&&&&&*/&&&&public&TbUser()&{&&&&}&&&&/**&&&&&*&@return&the&id&&&&&*/&&&&public&int&getId()&{&&&&&&&&return&&&&&}&&&&/**&&&&&*&@param&id&the&id&to&set&&&&&*/&&&&public&void&setId(int&id)&{&&&&&&&&this.id&=&&&&&}&&&&/**&&&&&*&@return&the&user&&&&&*/&&&&public&String&getUser()&{&&&&&&&&return&&&&&}&&&&/**&&&&&*&@param&user&the&user&to&set&&&&&*/&&&&public&void&setUser(String&user)&{&&&&&&&&this.user&=&&&&&}&&&&/**&&&&&*&@return&the&text&&&&&*/&&&&public&String&getText()&{&&&&&&&&return&&&&&}&&&&/**&&&&&*&@param&text&the&text&to&set&&&&&*/&&&&public&void&setText(String&text)&{&&&&&&&&this.text&=&&&&&}}
& 数据库部分我就贴一下图片吧
&这个是数据库内容了
现在我把jboss启动起来,因为我使用MyEclipse的插件,所以JBoss的配置文件不需要更改
直接启动起来后发现问题了。
Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required&& &at org.springframework.orm.hibernate3.support.HibernateDaoSupport.checkDaoConfig(HibernateDaoSupport.java:117)&& &at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)&& &at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)&& &at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)&& &... 150 more
&其中主要看这条错误,告知是sessionFactory或者hibernateTemplate是空的,其实原本我也不知道是怎么一回事,直接就google了,发现已经有人跟到hibernate源码里面去了,并且提示sessionFactory为空的。我也就参照那位仁兄的建议,手动塞进去了。
代码如下:
@Resource(name="sessionFactory")&&&&public&void&setSuperSessionFactory(SessionFactory&sessionFactory){&&&&&&&&super.setSessionFactory(sessionFactory);&&&&}
这块代码我就写在了BaseDaoImpl.java中,因为我每一层之上都加了一个base层,我是考虑为今后加统一功能的时候方便,现在就正好派上用场了。然后我再次启动服务器。
问题又来了
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation o nested exception is org.hibernate.AnnotationException: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.&init&(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.mon.reflection.ReflectionManager)&& &at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)&& &at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)&& &at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)&& &at java.security.AccessController.doPrivileged(Native Method)&& &at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)&& &at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)&& &at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)&& &at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)&& &at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)&& &at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:168)&& &at org.springframework.monAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:435)&& &at org.springframework.monAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)&& &at org.springframework.monAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:537)&& &at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:192)&& &at org.springframework.beans.factory.annotation.InjectionMetadata.injectMethods(InjectionMetadata.java:117)&& &at org.springframework.monAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:302)&& &... 151 more
这个问题就比较折腾了,我当时也无从着手的感觉,网上搜索的也乱七八糟的,有点似是而非的感觉。偶然看到一帖中说到,jboss的hibernate老了,只要删除就可以了。为了以防万一,我将jboss中的hibernate-*.jar全部贴到文件夹外面。然后重启就正常了。
接着我再访问这个项目的时候,console打印的消息就是:
14:14:51,203 INFO& [STDOUT] ==============进入Service==================14:14:51,203 INFO& [STDOUT] =================进入DAO==================14:14:51,515 INFO& [STDOUT] Hibernate: select tbuser0_.id as id0_, tbuser0_.text as text0_, tbuser0_.user as user0_ from tb_user tbuser0_14:14:51,562 INFO& [STDOUT] 我来测试一下&
后面我一个包一个包的测试,证实了之前帖子中说的,hibernate-annotations.jar这个包的问题。只要将这个包删除就可以了。jboss4.2.2服务器就完全正常了。因为后续功能还没加上去,所以是否还缺少包我就不得而知了,只能一步一步来。希望我遇到的问题的解决方案,能够帮到各位吧。如果有错误,也请提出来。谢谢。

我要回帖

更多关于 apache2.2 php5.4 的文章

 

随机推荐