spring+struts+hibernate,执行Factory.do时报错:Servlet action is not available.
web.xml:
-----------------------------------------------------------------------------------
<web-app>
<!-- reference jdbc connection -->
<resource-ref>
<description>jdbc connection</description>
<res-ref-name>jdbc/wastage</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- spring -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Standard Action Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
struts-config.xml
-----------------------------------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<!-- form beans -->
<form-beans>
<form-bean name="FACTORY" type="entities.Factory" />
</form-beans>
<!-- spring plugin -->
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
<!-- action mapping -->
<action-mappings>
<!-- factory -->
<action path="/ListFactory"
type="org.springframework.web.struts.DelegatingActionProxy"
input="/Error.jsp">
<forward path="success" name="jsp/ListFactory.jsp" />
</action>
<action path="/EditFactory"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward path="success" name="jsp/EditFactory.jsp" />
</action>
<action path="/InsertFactory"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward path="success" name="jsp/InsertFactory.jsp" />
</action>
</action-mappings>
<message-resources parameter="MessageResource" />
</struts-config>
applicationContext.xml
---------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- jndi datasource -->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/xlinfo</value>
</property>
</bean>
<!-- messageResouce -->
<bean id="messageResource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>MessageResource</value>
</list>
</property>
</bean>
<!-- hibernate configuration -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate.LocalSessionFactoryBean"
singleton="true">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>entities/Factory.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
net.sf.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- business logic -->
<bean id="factoryDAO" class="daos.FactoryDAO">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="factoryDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="target">
<ref local="factoryDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- struts actions -->
<!-- factory -->
<bean name="/ListFactory" class="actions.factory.ListFactory" singleton="false">
<property name="factoryDao">
<ref bean="factoryDAOProxy" />
</property>
</bean>
<bean name="/EditFactory" class="actions.factory.EditFactory" singleton="false">
<property name="factoryDao">
<ref bean="factoryDAOProxy" />
</property>
</bean>
<bean name="/InsertFactory" class="actions.factory.InsertFactory" singleton="false">
<property name="factoryDao">
<ref bean="factoryDAOProxy" />
</property>
</bean>
<bean name="/DeleteFactory" class="actions.factory.DeleteFactory" singleton="false">
<property name="factoryDao">
<ref bean="factoryDAOProxy" />
</property>
</bean>
<bean name="/UpdateFactory" class="actions.factory.UpdateFactory" singleton="false">
<property name="factoryDao">
<ref bean="factoryDAOProxy" />
</property>
</bean>
</beans>
问题点数:30、回复次数:10Top
1 楼singedcat(以夢為馬)回复于 2005-01-26 14:40:43 得分 0
upTop
2 楼zoujinhe(易變蟲)回复于 2005-01-26 15:44:32 得分 0
我提前。Top
3 楼zoujinhe(易變蟲)回复于 2005-01-26 15:54:47 得分 0
<res-ref-name>jdbc/wastage</res-ref-name>
是
<res-ref-name>jdbc/xlinfo</res-ref-name>Top
4 楼yxhzj(余华[学习J2EE中])回复于 2005-01-26 20:03:11 得分 0
<res-ref-name>jdbc/wastage</res-ref-name>
是
<res-ref-name>jdbc/xlinfo</res-ref-name>
?还有什么?我晕
那不是白用这个框架了
Top
5 楼zoujinhe(易變蟲)回复于 2005-01-27 14:46:08 得分 0
那不是白用这个框架了?????????????Top
6 楼yxhzj(余华[学习J2EE中])回复于 2005-01-28 18:43:54 得分 0
hibernate会自己找到JNDI的Top
7 楼zoujinhe(易變蟲)回复于 2005-01-31 14:33:36 得分 0
师兄,答非所问也.Top
8 楼YunliWuli(云里雾里)回复于 2005-02-21 16:24:28 得分 0
在你的struts-config.xml中,没有<action path="/Factory"... 之类的配置Top
9 楼singedcat(以夢為馬)回复于 2005-02-21 16:33:37 得分 0
upTop
10 楼YuLimin(阿敏总司令:简单就是美—钻石闪闪您快结贴!)回复于 2005-03-12 15:43:03 得分 30
http://dev.csdn.net/Develop/article/26/article/26/article/26/article/26/article/26/26696.shtm
wiring的运行
按照readme.txt文件的步骤,以下的几个步骤也是和readme.txt的步骤对应,不过是对它的一个补充
STEP 1:
除了提到的5个软件包外还要下载db2java,主要是为了ant用。
STEP 5:
还要修改build.xml,根据本人的情况设置如下几个property.
xdoclet.lib.home、hibernate.lib.home、war.webinf.home、mysql.lib.home、db2.lib.home
tomcat.work.directory
还要在WEB-INF下建立一个lib目录。
还要修改web.xml,将<param-value>WEB-INF/struts-config.xml</param-value>修改为
<param-value>/WEB-INF/struts-config.xml</param-value>多加一个/在WEB-INF前面。
STEP 7:
在运行Web Server之前,先将一下一些jar文件拷贝到WEB-INF/lib下:
aopalliance.jar;cglib-full-2.0.2.jarr;
commons-beanutils.jar;commons-collections.jar;commons-digester.jar;commons-lang.jar;commons-logging.jar;commons-validator.jar;
dom4j.jar;ehcache.jar;hibernate2.jar; jstl.jar; standard.jar;jta.jar;log4j.jar;
odmg.jar;proxool-0.8.3.jar;
spring.jar
struts.jar; jakarta-oro.jar;
mysql-connector-java-3.0.16-ga-bin.jar
以上jar文件可以在SpringFramework、Hibernae、Struts、MySQL下找到。
在运行发布过程中,出现的错误有一下这些:
1、 "org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'orderService' defined in resource [/WEB-INF/applicationContext-hibernate.xml] of ServletContext: Class that bean class [org.springframework.transaction.interceptor.TransactionProxyFactoryBean] depends on not found; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice",原因是aopalliance.jar没有加入到WEB-INF/lib下去。
2、 "java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV",原因是jstl.jar、standard.jar没有加入到WEB-INF/lib下。
3、Unable to locate config file proxool.xml
applicationContext-hibernate.xml中改成
<prop key="hibernate.proxool.xml">proxool.xml</prop>
<prop key="hibernate.proxool.pool_alias">spring</prop>
并把proxool.xml放在WEB-INF\classes\目录下即可以了。
Top




