ssh框架下java.lang.IllegalStateException: No Scope registered for scope 'protoscope

Charles_k 2018-06-17 08:40:33
这是我的完整报错
HTTP Status 500 – Internal Server Error
Type Exception Report

Message Unable to instantiate Action, bookBorrowAction, defined for 'borrowBookAction' in namespace '/'Error creating bean with name 'bookBorrowAction': Injection of resource dependencies failed; nested exception is java.lang.IllegalStateException: No Scope registered for scope 'protoscope'

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

Unable to instantiate Action, bookBorrowAction, defined for 'borrowBookAction' in namespace '/'Error creating bean with name 'bookBorrowAction': Injection of resource dependencies failed; nested exception is java.lang.IllegalStateException: No Scope registered for scope 'protoscope'
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:319)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:400)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:500)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
Root Cause


Root Cause

java.lang.IllegalStateException: No Scope registered for scope 'protoscope'
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:442)
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:416)
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:549)
org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:150)
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093)
com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:151)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:120)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:300)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:400)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:500)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
Note The full stack trace of the root cause is available in the server logs.

Apache Tomcat/9.0.6

jsp页面


<%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2018/6/13
Time: 21:54
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" language="java" %>

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>图书搜索</title>
</head>
<body>

<h1>hello ,${user.username}</h1>


<h3>图书搜索:</h3>
<form action="selectBook" method="post">
书名:<input type="text" name="book.name" ><br/>

作者:<input type="text" name="book.author" > <br/>
出版社:<input type="text" name="book.publisher" ><br/>
<input type="submit" value="查询">
<input type="reset" value="重置">
<br/>

</form>


<h3>搜索结果:</h3>

<div style="margin:0px auto; width:500px">
<table cellspacing="0" border="1" width="100%">
<tr >
<td>借书</td>
<td >图书存储序号</td>
<td>图书编号</td>
<td>书名</td>
<td>作者</td>
<td>图书类型</td>
<td>出版社</td>
<td>库存总数量</td>
<td>借出数量</td>
<td>书籍信息</td>
<td>单价</td>
</tr>

<s:iterator value="%{books}" var="p">

<tr>
<td><a href="borrowBookAction?borrowinfo.bookid=${p.bookid}&&borrowinfo.username=${user.username}" >借书</a> </td>

<td>${p.id} </td>
<td>${p.bookid}</td>
<td>${p.name}</td>
<td>${p.author}</td>
<td>${p.type}</td>
<td>${p.publisher}</td>
<td>${p.allmount}</td>
<td>${p.mount}</td>
<td>${p.remark}</td>
<td>${p.price}</td>
</tr>
</s:iterator>
</table>
</div>


</body>
</html>



struts.xml配置

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<constant name="struts.devMode" value="false"/>
<constant name="struts.objectFactory" value="spring" />

<package name="user" namespace="/" extends="struts-default">

<action name="user_*" class="userAction" method="{1}">
<result name="success">/success.jsp</result>
<result name="editUserAction">/editUser.jsp</result>
<result name="error">/error.jsp</result>
</action>

<action name="register" class="userRegisterAction" method="register">
<result name="success" >/index.jsp</result>
<result name="error">/error.jsp</result>
</action>

<action name="*Book" class="BookAction" method="{1}">
<result name="success">showBookResult.jsp</result>
<result name ="listBook" >showBookResult.jsp</result>
<result name="listBookAction" type="chain">listBook</result>
</action>

<action name="borrowBookAction" class="bookBorrowAction" method="borrow">
<result name="success">
showBookResult.jsp
</result>
<result name="error">error.jsp</result>
</action>


</package>
</struts>


action

package com.kevin.action;


import com.kevin.entity.Borrowinfo;
import com.kevin.service.BorrowinfoService;
import com.opensymphony.xwork2.ActionSupport;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import javax.annotation.Resource;


@Scope("prototype")
@Controller("bookBorrowAction")

public class BookBorrowAction extends ActionSupport{
@Resource
private BorrowinfoService borrowinfoService;

private Borrowinfo borrowinfo;

public Borrowinfo getBorrowinfo() {
return borrowinfo;
}

public void setBorrowinfo(Borrowinfo borrowinfo) {
System.out.println("ba132146");
this.borrowinfo = borrowinfo;
}

public String borrow()
{
System.out.println("bab132146");
if(borrowinfoService.add(borrowinfo).equals(SUCCESS))
{
System.out.println("bab132147");
return SUCCESS;
}
else return ERROR;
}


}





点击借书功能,就直接报错
...全文
1188 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2018-06-18
  • 打赏
  • 举报
回复
引用 2 楼 Charles_ke 的回复:
[quote=引用 1 楼 stacksoverflow 的回复:] java.lang.IllegalStateException: No Scope registered for scope 'protoscope' 看看代码里哪里写了protoscope
我这上传得action层里面啊,BookBorrowAction[/quote] 怀疑你代码里写了,protoscope 不是prototype,把工程clean一下
Charles_k 2018-06-18
  • 打赏
  • 举报
回复
引用 1 楼 stacksoverflow 的回复:
java.lang.IllegalStateException: No Scope registered for scope 'protoscope' 看看代码里哪里写了protoscope
我这上传得action层里面啊,BookBorrowAction
stacksoverflow 2018-06-18
  • 打赏
  • 举报
回复
java.lang.IllegalStateException: No Scope registered for scope 'protoscope' 看看代码里哪里写了protoscope

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧