web.xml<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>smts.root</param-value>
</context-param> <context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!--
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<display-name>CharacterEncodingFilter</display-name>
<filter-class>com.njkys.smts.common.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<servlet>
<servlet-name>ApplicationStartConfigServlet</servlet-name>
<servlet-class>com.njkys.common.web.servlet.ApplicationStartConfigServlet</servlet-class>
<init-param>
<param-name>pageSize</param-name>
<param-value>20</param-value>
</init-param>
<init-param>
<!--?????????????????????-->
<param-name>uploadContextPath</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet> <servlet>
<servlet-name>BeanContextLoaderServlet</servlet-name>
<servlet-class>com.njkys.common.web.servlet.BeanContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> <servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> <session-config>
<session-timeout>0</session-timeout>
</session-config> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>index.jsp<jsp:forward page="/login.do?method=loginPage"/>LoginActionpackage com.njkys.smts.orm.login.action;
public class LoginAction extends BaseDispatchAction
{
private UserInfoService userInfoService = (UserInfoService)BeanContext.getBean("userInfoService");
public ActionForward loginPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception
{
request.setAttribute("verifyDegree", request.getAttribute("verifyDegree"));
return mapping.findForward("loginPage");
}
}用到的package com.njkys.smts.common.bean;import org.springframework.context.ApplicationContext;public class BeanContext
{
private static ApplicationContext applicationContext; public static Object getBean(String name)
{
return applicationContext.getBean(name);//就是这个地方报空指针错误
} public static Object getBean(String name, Class requiredType) {
return applicationContext.getBean(name, requiredType);
} public static ApplicationContext getApplicationContext() {
return applicationContext;
} public static void setApplicationContext(ApplicationContext applicationContext) {
applicationContext = applicationContext;
}
}所报异常
2009-08-27 12:17:03 ERROR RequestProcessor:330 - No action instance for path /login could be created
java.lang.NullPointerException
at com.njkys.smts.common.bean.BeanContext.getBean(BeanContext.java:12)
at com.njkys.smts.orm.login.action.LoginAction.<init>(LoginAction.java:36)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:326)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:268)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:686)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:656)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:43)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.njkys.smts.common.web.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)请各位帮帮忙,搞了一天多了,找了N多资料,试了N种办法,都没有解决
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>smts.root</param-value>
</context-param> <context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!--
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<display-name>CharacterEncodingFilter</display-name>
<filter-class>com.njkys.smts.common.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<servlet>
<servlet-name>ApplicationStartConfigServlet</servlet-name>
<servlet-class>com.njkys.common.web.servlet.ApplicationStartConfigServlet</servlet-class>
<init-param>
<param-name>pageSize</param-name>
<param-value>20</param-value>
</init-param>
<init-param>
<!--?????????????????????-->
<param-name>uploadContextPath</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet> <servlet>
<servlet-name>BeanContextLoaderServlet</servlet-name>
<servlet-class>com.njkys.common.web.servlet.BeanContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> <servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> <session-config>
<session-timeout>0</session-timeout>
</session-config> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>index.jsp<jsp:forward page="/login.do?method=loginPage"/>LoginActionpackage com.njkys.smts.orm.login.action;
public class LoginAction extends BaseDispatchAction
{
private UserInfoService userInfoService = (UserInfoService)BeanContext.getBean("userInfoService");
public ActionForward loginPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception
{
request.setAttribute("verifyDegree", request.getAttribute("verifyDegree"));
return mapping.findForward("loginPage");
}
}用到的package com.njkys.smts.common.bean;import org.springframework.context.ApplicationContext;public class BeanContext
{
private static ApplicationContext applicationContext; public static Object getBean(String name)
{
return applicationContext.getBean(name);//就是这个地方报空指针错误
} public static Object getBean(String name, Class requiredType) {
return applicationContext.getBean(name, requiredType);
} public static ApplicationContext getApplicationContext() {
return applicationContext;
} public static void setApplicationContext(ApplicationContext applicationContext) {
applicationContext = applicationContext;
}
}所报异常
2009-08-27 12:17:03 ERROR RequestProcessor:330 - No action instance for path /login could be created
java.lang.NullPointerException
at com.njkys.smts.common.bean.BeanContext.getBean(BeanContext.java:12)
at com.njkys.smts.orm.login.action.LoginAction.<init>(LoginAction.java:36)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:326)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:268)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:686)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:656)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:43)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.njkys.smts.common.web.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)请各位帮帮忙,搞了一天多了,找了N多资料,试了N种办法,都没有解决
解决方案 »
- JSP下if(trim(session.getAttribute("grade"))== "0") 谢谢!!
- 求代码
- TOMCAT、OC4J、IE问题,求高手,不胜感激
- 关闭数据库连接问题
- org.apache.jasper.JasperException: java.lang.NullPointerException错误,求助
- 网络爬虫问题,在线等....望各位多多帮忙
- 求救:JSP如何动态的刷新呢?
- 谁有JSP的那个MVC架构开发教学视频啊!!初学~~~~
- servlet上传的例子有点问题,帮忙看看
- 如何做一个6位的随机数,永远不会重复的那种?
- js获取值的问题!!!50分求助!!
- java web方面的面试一般会问什么问题
<!-- database config oracle -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"><value>oracle.jdbc.OracleDriver</value></property>
<property name="url"><value>jdbc:oracle:thin:@localhost:1521:njkys</value></property>
<!--<property name="url"><value>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.5.10)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.5.11)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on))(CONNECT_DATA=(SERVICE_NAME=ipms)))</value></property>-->
<property name="username"><value>njjt</value></property>
<property name="password"><value>njjt</value></property>
</bean>
<!-- end database config -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"><ref local="dataSource"/></property>
</bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="proxyTargetClass"><value>true</value></property>
<property name="transactionManager"><ref local="transactionManager"/></property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-com.njkys.smts.common.exception.DomainException</prop>
</props>
</property>
</bean>
<!-- BaseDAO config -->
<bean id="baseDAO" class="com.njkys.smts.common.dao.BaseDAO" abstract="true">
<property name="dataSource"><ref bean="dataSource"/></property>
</bean>
<!-- end BaseDAO config -->
<!-- uploadpath config -->
<bean id="uploadPathService" class="com.njkys.smts.common.upload.service.UploadPathService">
<property name="useDiskPath"><value>false</value></property>
<property name="diskPath"><value>D:</value></property>
<property name="uploadContext"><value>upload</value></property>
</bean>
<!-- end uploadpath config -->
<!-- upload file size config -->
<bean id="uploadService" class="com.njkys.smts.common.upload.service.UploadService">
<property name="maxUploadSize"><value>31457280<!-- 30M --></value></property>
<property name="uploadPathService"><ref local="uploadPathService"/></property>
</bean>
<!-- end upload file size config -->
<!-- userinfo bean -->
<bean id="userInfoService" parent="baseTransactionProxy">
<property name="target">
<bean class="com.njkys.smts.orm.user.service.UserInfoService">
<property name="userInfoDAO"><ref local="userInfoDAO"/></property>
</bean>
</property>
</bean>
<!-- 用户信息 DAO 定义 -->
<bean id="userInfoDAO" class="com.njkys.smts.orm.user.dao.UserInfoDAO" parent="baseDAO"/>
<!-- end userinfo bean --></beans>struts-config.xml<?xml version="1.0" encoding="UTF-8"?>
<!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>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings>
<!-- userinfo start -->
<action path="/login" type="com.njkys.smts.orm.login.action.LoginAction" parameter="method" validate="false">
<forward name="loginPage" path="/smts/orm/login/precatoryLogin.jsp" />
<forward name="reLoginPage" path="login.reLoginPage" />
<forward name="erroLogin" path="login.erroLogin" />
<forward name="resetPasswordPage" path="login.resetPassword"/>
<forward name="goToMainPage" path="login.goToMainPage"/>
</action>
<!-- userinfo end -->
</action-mappings>
<message-resources parameter="com.njkys.smts.struts.ApplicationResources" />
<!--
<controller processorClass="org.springframework.web.struts.AutowiringRequestProcessor" />
-->
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
package com.njkys.smts.common.bean;import org.springframework.context.ApplicationContext;public class BeanContext
{
private static ApplicationContext applicationContext; public static Object getBean(String name)
{
return applicationContext.getBean(name);//就是这个地方报空指针错误
} public static Object getBean(String name, Class requiredType) {
return applicationContext.getBean(name, requiredType);
} public static ApplicationContext getApplicationContext() {
return applicationContext;
} public static void setApplicationContext(ApplicationContext applicationContext) {
applicationContext = applicationContext;
}
}applicationContext 这是你自己定义的,不是从上下文中取的,没有经过实例化,
是空的。
应该是applicationContext引用的值是null,没有创建或没有注入对象!
我定义了一个BeanContextLoaderServlet这样的servlet,就是说applicationConext已经装载了,并且在配置文件中注册了package com.njkys.smts.common.web.servlet;import com.njkys.smts.common.bean.BeanContext;
import javax.servlet.ServletException;
import org.springframework.web.context.ContextLoaderServlet;
import org.springframework.web.context.support.WebApplicationContextUtils;public class BeanContextLoaderServlet extends ContextLoaderServlet
{
public void init()
throws ServletException
{
super.init();
BeanContext.setApplicationContext(WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()));
}
}[code=XML]
<servlet>
<servlet-name>BeanContextLoaderServlet</servlet-name>
<servlet-class>com.njkys.common.web.servlet.BeanContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>[/code]