问题描述
我从Spring开始,我想创建一个相当简单的webapp.
I'm getting started with Spring and I want to create a fairly simple webapp.
首先,我有一个 web.xml
<servlet>
<servlet-name>MyServletController</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServletController</servlet-name>
<url-pattern>/submitQuery</url-pattern>
<url-pattern>/saveTextAttributes</url-pattern>
<url-pattern>/saveTextLinks</url-pattern>
</servlet-mapping>
及其配置 MyServletController-servlet.xml :
<context:component-scan
base-package="world.hello.mycontrollers"/>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
控制器 MyServletController.java 的Java实现:
The java implementation of the controller MyServletController.java:
package world.hello.mycontrollers;
@Controller
public class MyServletController
{
private QueryRunner queryRunner;
@RequestMapping("/submitQuery")
public ModelAndView submitQuery(HttpServletRequest request)
{
ApplicationContext context =
new ClassPathXmlApplicationContext("springBeans.xml");
this.queryRunner = (QueryRunner)context.getBean("queryRunner");
Query myQuery = new Query(request.getParameter("name"));
ResponseCode rc = queryRunner.runQuery(myQuery);
String json = "not yet implmented";
try {
json = mapper.writeValueAsString(rc);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new ModelAndView("text", "model", json);
}
}
最后, springBeans.xml
<bean id="queryRunner"
class="world.hello.business.QueryRunner"
scope = "session">
<aop:scoped-proxy/>
</bean>
运行我访问此servlet,我得到java.lang.IllegalStateException: No Scope registered for scope 'session'
Run I access this servlet, I get java.lang.IllegalStateException: No Scope registered for scope 'session'
这是什么意思?
推荐答案
您可以尝试将ClassPathXmlApplicationContext
替换为XmlWebApplicationContext
,也许吗?由于会话是与网络相关的范围.
You could try replacing the ClassPathXmlApplicationContext
with XmlWebApplicationContext
, may be? Since session is a web related scope.
这篇关于java.lang.IllegalStateException:没有为作用域“会话"注册作用域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!