Struts2 扫描包中的 ParentPackage 老是提示 parent package 里面的值是unknown location,
具体错误信息如下:
1:10:14.318 [localhost-startStop-1] INFO o.s.w.c.s.XmlWebApplicationContext - Closing org.springframework.web.context.support.XmlWebApplicationContext@1a8e045: display name [Root WebApplicationContext]; startup date [Thu May 16 11:10:12 CST 2013]; root of context hierarchy
11:10:14.318 [localhost-startStop-1] INFO o.s.b.f.s.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@13df2a2: defining beans []; root of factory hierarchy
五月 16, 2013 11:10:14 上午 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
Unable to load configuration. - [unknown location]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:485)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4656)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5309)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: Unable to load configuration. - [unknown location]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:473)
... 15 more
Caused by: ClasspathPackageProvider: Unable to locate parent package default - [unknown location]
at org.apache.struts2.config.ClasspathPackageProvider.findAllParentPackages(ClasspathPackageProvider.java:439)
at org.apache.struts2.config.ClasspathPackageProvider.processActionClass(ClasspathPackageProvider.java:398)
at org.apache.struts2.config.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:306)
at org.apache.struts2.config.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:543)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:260)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
... 17 more
web.xml部分配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.javaeye.test.web</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts.xml配置内容
<struts>
<constant name="struts.multipart.maxSize" value="204800000" />
<constant name="struts.codebehind.pathPrefix" value="/WEB-INF/template/" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
.....
</package>
</struts>
分享到:
相关推荐
其次,Struts2还提供了其他有用的注解,如`@Namespace`定义Action的命名空间,`@ParentPackage`指定Action继承的包配置,`@Results`用于定义多个结果,以及`@Action(value="", results={...})`的组合使用,可以将...
5. `@ParentPackage`: 用于指定Action继承自哪个Struts 2配置包,可以复用其中的拦截器和其他配置。例如: ```java @ParentPackage("default") public class MyAction { // ... } ``` 6. 拦截器配置:Struts ...
Struts2框架支持使用注解进行Action配置,这包括但不限于`@Action`、`@Result`、`@ParentPackage`和`@Namespace`等注解。例如,在给定的代码片段中,`@Controller`注解表示这是一个Spring管理的控制器类,`@Parent...
工具方面,IDEA等现代Java集成开发环境提供了对Struts2注解的良好支持,包括自动补全、错误检查和代码导航等功能,使开发过程更为顺畅。 在学习过程中,建议动手实践,创建一个简单的Struts2项目,尝试使用注解来...
26.2.4 @ParentPackage注解 319 26.3 CodeBehind插件 319 26.4 小结 321 第27章 Ajax 322 27.1 Ajax概述 322 27.2 Dojo的事件系统 323 27.3 使用Struts Dojo插件 324 27.4 head标签 324 27.5 div标签 325 ...
- `@ParentPackage`用于指定Action继承的父包配置。 - `@ExceptionMapping`用于处理特定异常并映射到结果。 7. **JAR文件中的Action**: - Convention插件还支持在JAR文件内部定义Action,这对于构建模块化的...
- **ParentPackage注解**:继承自定义的包配置。 - **ExceptionMapping注解**:异常处理映射。 #### 动作与结果管理 Convention插件还支持基于约定的动作链、结果代码的定制化,允许开发者更高效地管理和控制应用...
同时,它支持注解,如`@Action`, `@Result`, `@Results`, `@ParentPackage`等,使得Action类和结果更加灵活可配置。 接下来,`asm-3.3.jar`和`asm-commons-3.3.jar`是ASM库的不同组件,这是一个非常底层的Java字节...
同时,我们还使用了Struts2的@ParentPackage和@Results注解来定义结果映射,使得Struts2能够根据不同的执行结果跳转到相应的JSP页面。 在RegisterAction类中,我们注入了UserService接口(通过@Autowired注解,但在...
例如,在`RegisterAction`类中,`@ParentPackage("struts-default")`注解指定了基础包,这将使用默认的Struts2配置。`@Results`注解用于定义Action执行后可能返回的结果页面,如`@Result(name="success", value=...
- `@ParentPackage`:指定父包,继承父包中的配置,避免重复定义。 2. **Spring注解**: - `@Component`:标记一个类为Spring管理的Bean,如Service、DAO等。 - `@Autowired`:自动装配Bean,根据类型或名称注入...
26.2.4 @ParentPackage注解 319 26.3 CodeBehind插件 319 26.4 小结 321 第27章 Ajax 322 27.1 Ajax概述 322 27.2 Dojo的事件系统 323 27.3 使用Struts Dojo插件 324 27.4 head标签 324 27.5 div标签 325 27.5.1 ...
- `@ParentPackage`:继承自定义的包配置。 - `@ExceptionMapping`:处理异常的映射。 7. **JAR文件中的Actions**:Action类可以放在JAR文件中,Convention Plugin能够自动识别并处理。 8. **自动配置重载**:在...
- **ParentPackage注解**:继承自哪个包的配置。 - **ExceptionMapping注解**:异常映射,将特定异常映射到特定的结果。 5. **默认配置与扩展** - 默认Action:如果请求的URL没有明确的Action,Convention会尝试...
RESTful 应用,通过在 `struts.xml` 配置文件中指定 `struts.convention.action.suffix` 为 `Controller`,`struts.convention.action.mapAllMatches` 为 `true`,以及 `struts.convention.default.parent.package` ...
- **ParentPackage Annotation**:用于指定Action继承的包,便于复用和扩展已有功能。 - **ExceptionMapping Annotation**:处理Action执行过程中可能抛出的异常,提供统一的错误处理机制。 #### 总结与展望 ...