2016-05-03 61 views
-2

我想在struts2中开发一个国际化应用程序,在这里把属性文件命名为“global”作为基本名称,“Action”作为使用eclipse的基本名称?在Struts 2国际化中的属性文件

属性文件如何在struts2中加载(因为我们使用任何语句来加载属性)。控件如何流动?

如果我在运行的应用程序中遇到请求资源不可用的错误,是什么原因?

的index.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
     pageEncoding="ISO-8859-1"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <%@taglib uri="/struts-tags" prefix="s" %> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Internationalization</title> 
    </head> 
    <body> 
    <h1><s:text name="global.heading"/></h1> 
    <s:url id="indexEn" action="locale" namespace="/"> 
    <s:param name="request_locale">en</s:param> 
    </s:url> 
    <s:url id="indexUR" action="locale" namespace="/"> 
    <s:param name="request_locale">ur</s:param> 
    </s:url> 
    <s:url id="indexHN" action="locale" namespace="/"> 
    <s:param name="request_locale">hn</s:param> 
    </s:url> 

    <s:a href="%{indexEn}">English</s:a> 
    <s:a href="%{indexUR}">Urdu</s:a> 
    <s:a href="%{indexHN}">Hindi</s:a> 

    <s:form action="emp"> 
    <s:textfield name="name" key="global.name" size="20"/> 
    <s:textfield name="age" key="global.age" size="20"/> 
    <s:submit name="submit" key="global.submit" align="right"/> 

    </s:form> 
    </body> 
    </html> 

操作文件:

package com.Localization.myPack; 
    import com.opensymphony.xwork2.ActionSupport; 
    public class Employee extends ActionSupport{ 
    private String name; 
    private int age; 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public int getAge() { 
     return age; 
    } 
    public void setAge(int age) { 
     this.age = age; 
    } 
    public String execute() 
    { 
    return"success"; 
    } 
    } 
Locale file: 
global.heading=Select locale 
global.age=Age 
global.submit=submit 
global.success=Successfully authenticated 

struts.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 
    <struts> 
    <constant name="struts.devMode" value="true" /> 
<!-- <constant name="struts.custom.i18n.resources" value="global" /> --> 

    <package name="default" extends="struts-default"> 
    <action name="emp" class="com.Localization.myPack.Employee" method="execute"> 
    <result name="success">/success.jsp</result> 
    <result name="input">/index.jsp</result> 
    </action> 

    <action name="locale" class="com.Localization.myPack.Locale" method="execute"> 
    <result name="success">/index.jsp</result> 
    </action> 

    </package> 
    </struts> 

堆栈跟踪:

May 04, 2016 1:47:28 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Localization' did not find a matching property. 
May 04, 2016 1:47:28 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server version:  Apache Tomcat/7.0.57 
May 04, 2016 1:47:28 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server built:   Nov 3 2014 08:39:16 UTC 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server number:   7.0.57.0 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: OS Name:    Windows 7 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: OS Version:   6.1 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Architecture:   x86 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: JAVA_HOME:    C:\Program Files (x86)\Java\jdk1.8.0_20\jre 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: JVM Version:   1.8.0_20-b26 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: JVM Vendor:   Oracle Corporation 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: CATALINA_BASE:   C:\Users\javed\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: CATALINA_HOME:   C:\apache-tomcat-7.0.57 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dcatalina.base=C:\Users\javed\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dcatalina.home=C:\apache-tomcat-7.0.57 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dwtp.deploy=C:\Users\javed\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Djava.endorsed.dirs=C:\apache-tomcat-7.0.57\endorsed 
May 04, 2016 1:47:29 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dfile.encoding=Cp1252 
May 04, 2016 1:47:29 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jdk1.8.0_20\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jdk1.8.0_20/jre/bin/client;C:/Program Files (x86)/Java/jdk1.8.0_20/jre/bin;C:/Program Files (x86)/Java/jdk1.8.0_20/jre/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Java\jdk1.8.0_20\bin;C:\Users\javed\Desktop;;. 
May 04, 2016 1:47:33 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
May 04, 2016 1:47:33 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
May 04, 2016 1:47:33 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 11757 ms 
May 04, 2016 1:47:33 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
May 04, 2016 1:47:33 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.57 
May 04, 2016 1:47:35 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom 
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [601] milliseconds. 
May 04, 2016 1:47:39 PM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info 
INFO: Parsing configuration file [struts-default.xml] 
May 04, 2016 1:47:39 PM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info 
INFO: Unable to locate configuration files of the name struts-plugin.xml, skipping 
May 04, 2016 1:47:39 PM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info 
INFO: Parsing configuration file [struts-plugin.xml] 
May 04, 2016 1:47:39 PM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info 
INFO: Parsing configuration file [struts.xml] 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.ObjectFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ActionFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ResultFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ConverterFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.factory.InterceptorFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ValidatorFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.factory.UnknownHandlerFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.FileManagerFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.XWorkConverter) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.CollectionConverter) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.ArrayConverter) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.DateConverter) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.NumberConverter) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.StringConverter) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionFileProcessor) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.TypeConverterCreator) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.TypeConverterHolder) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.TextProvider) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.LocaleProvider) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.ActionProxyFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ObjectTypeDeterminer) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (org.apache.struts2.dispatcher.mapper.ActionMapper) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (jakarta) for (org.apache.struts2.dispatcher.multipart.MultiPartRequest) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (org.apache.struts2.views.freemarker.FreemarkerManager) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (org.apache.struts2.components.UrlRenderer) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.validator.ActionValidatorManager) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.util.ValueStackFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionProvider) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionContextFactory) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.util.PatternMatcher) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (org.apache.struts2.util.ContentTypeMatcher) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (org.apache.struts2.dispatcher.StaticContentLoader) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.UnknownHandlerManager) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (org.apache.struts2.views.util.UrlHelper) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.util.TextParser) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (org.apache.struts2.dispatcher.DispatcherErrorHandler) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.security.ExcludedPatternsChecker) 
May 04, 2016 1:47:39 PM org.apache.struts2.config.AbstractBeanSelectionProvider info 
INFO: Choosing bean (struts) for (com.opensymphony.xwork2.security.AcceptedPatternsChecker) 
May 04, 2016 1:47:39 PM com.opensymphony.xwork2.config.providers.InterceptorBuilder warn 
WARNING: Unable to load config class org.apache.struts2.interceptor.debugging.DebuggingInterceptor at interceptor - jar:file:/C:/Users/javed/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Localization/WEB-INF/lib/struts2-core-2.3.28.jar!/struts-default.xml:198:115 probably due to a missing jar, which might be fine if you never plan to use the debugging interceptor 
May 04, 2016 1:47:39 PM com.opensymphony.xwork2.config.providers.InterceptorBuilder error 
SEVERE: Actual exception 
Caught Exception while registering Interceptor class org.apache.struts2.interceptor.debugging.DebuggingInterceptor - interceptor - jar:file:/C:/Users/javed/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Localization/WEB-INF/lib/struts2-core-2.3.28.jar!/struts-default.xml:198:115 
    at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:202) 
    at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:59) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1092) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:798) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:811) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:834) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:441) 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:265) 
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:189) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55) 
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:970) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:438) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:482) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) 
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4830) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5510) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:295) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:485) 
    at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:523) 
    at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:522) 
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:521) 
    at com.opensymphony.xwork2.ObjectFactory.injectInternalBeans(ObjectFactory.java:127) 
    at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:152) 
    at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139) 
    at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:180) 
    ... 27 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:132) 
    at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:462) 
    at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:477) 
    at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:34) 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:293) 
    ... 36 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:495) 
    at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:532) 
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:581) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:530) 
    at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32) 
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:130) 
    ... 41 more 
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:295) 
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:431) 
    at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:492) 
    ... 46 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:293) 
    ... 48 more 
Caused by: java.lang.NullPointerException 
    at org.apache.struts2.views.freemarker.FreemarkerManager.setContainer(FreemarkerManager.java:222) 
    ... 53 more 

May 04, 2016 1:47:40 PM org.apache.catalina.core.StandardContext filterStart 
SEVERE: Exception starting filter struts2 
java.lang.NoSuchMethodError: com.opensymphony.xwork2.util.LocalizedTextUtil.setDevMode(Z)V 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:444) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:482) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) 
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4830) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5510) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

May 04, 2016 1:47:40 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error filterStart 
May 04, 2016 1:47:40 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/Localization] startup failed due to previous errors 
May 04, 2016 1:47:40 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks 
SEVERE: The web application [/Localization] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [[email protected]]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@78064a]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 
May 04, 2016 1:47:40 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks 
SEVERE: The web application [/Localization] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [[email protected]]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@f02062]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 
May 04, 2016 1:47:40 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks 
SEVERE: The web application [/Localization] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [[email protected]]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl] (value [com.opensymphony.xwork2.inject.Container[email protected]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 
May 04, 2016 1:47:40 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
May 04, 2016 1:47:40 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
May 04, 2016 1:47:40 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 6784 ms 

回答

1

Where to put property files named "global" as base name and "Action" as Base name using eclipse?

的MyAction.properties文件应在相同的包中MyAction类。 全局属性文件可以在任何地方。例如。把它放在你的一个源代码包中,比如“my.app.i18n”,并在struts.properties文件中定义包含关键字“struts.custom.i18n.resources”的路径。

How does control flow?

Struts尝试从classname.properties中查找属性文件到global.properties。有顺序是:

1. ActionClass.properties 
2. Interface.properties (every interface and sub-interface) 
3. BaseClass.properties (all the way to Object.properties) 
4. ModelDriven's model (if implements ModelDriven), for the model object repeat from 1 
5. package.properties (of the directory where class is located and every parent directory all the way to the root directory) 
6. search up the i18n message key hierarchy itself 
7. global resource properties 

(来自https://struts.apache.org/docs/localization.html,也阅读了本详细介绍)

+0

谢谢主席先生,我有全局属性文件置于含有file.and我使用的index.jsp行动外从属性文件检索值..但在运行时Iam得到错误: – Jimmy

+0

java.lang.RuntimeException:java.lang.reflect.InvocationTargetException – Jimmy

+0

由于@罗曼建议,请编辑您的答案与完整的堆栈跟踪。对我来说,看起来你还有其他一些启动问题。 – beendr