2016-05-03 22 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 [[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"のようなソースパッケージの1つに入れ、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

はあなたに卿に感謝、私はindex.jspのを使用していますfile.andを含むアクションの外側に配置グローバルプロパティファイルを持っていますしかし、プロパティファイルから値を取得する。しかし、実行時にエラーが発生する: – Jimmy

+0

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

+0

@Romanが示唆するように、完全なスタックトレースで回答を編集してください。私にとってはあなたのスタートアップ問題があるようです。 – beendr