2016-05-03 2 views
-2

Я хочу знать при разработке приложения интернационализации в struts2, куда помещать файлы свойств с именем «global» в качестве базового имени и «Действие» в качестве базового имени с использованием 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 [com.opensymphony.xwork2.inject.[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», и определите в файле 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

Как предлагает @Roman, отредактируйте свой ответ с полной трассировкой стека. Для меня это похоже на то, что у вас есть еще одна проблема с запуском. – beendr

Смежные вопросы