2010-11-24 12 views
2

У меня проблема с аннотацией Struts2.2.1 на NetBeans 6.9. Это мой первый раз с картой Struts2. Я делаю что-то неправильно??? Я следую за подробный учебник, и я получаю следующие ошибки на Apache Tomcat 6.0.29:Не удается получить аннотацию Struts2.2.1 для работы с Netbeans 6.9

HelloAction.java

package br.ufg.inf.sas.action; 

import org.apache.struts2.convention.annotation.Action; 
import org.apache.struts2.convention.annotation.Result; 

public class HelloAction { 

    @Action(value = "struts", results = { 
     @Result(location = "/helloStruts.jsp", name = "hipage")}) 
    public String execute() { 
     System.out.println("I'm getting the /struts page"); 
     System.out.println("Now I'll forward to helloStruts.jsp"); 
     return "hipage"; 
    } 
} 

helloStruts.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <h1>Hello Struts!</h1> 
    </body> 
</html> 

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

Apache Tomcat Ошибка:

Using CATALINA_BASE: "C:\Java\apache-tomcat-6.0.29" 
Using CATALINA_HOME: "C:\Java\apache-tomcat-6.0.29" 
Using CATALINA_TMPDIR: "C:\Java\apache-tomcat-6.0.29\temp" 
Using JRE_HOME:  "C:\Java\jdk1.6.0_22" 
Using CLASSPATH:  "C:\Java\apache-tomcat-6.0.29\bin\bootstrap.jar" 
24/11/2010 18:36:03 org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jdk1.6.0_22\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Java\apache-maven-3.0\bin;C:\Java\apache-ant-1.8.1\bin;C:\Java\jdk1.6.0_22\bin;C:\Web\apache-httpd-2.2\bin;C:\Web\mysql-5.1.53-winx64\bin;C:\Web\php-5.3.3-Win32-x86\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\TortoiseHg;C:\Program Files (x86)\CollabNet\Subversion Client;C:\MiKTeX-2.9\miktex\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared 
24/11/2010 18:36:04 org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
24/11/2010 18:36:04 org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 997 ms 
24/11/2010 18:36:04 org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
24/11/2010 18:36:04 org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.29 
24/11/2010 18:36:04 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor host-manager.xml 
24/11/2010 18:36:04 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor manager.xml 
24/11/2010 18:36:05 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor StrutsSample.xml 
24/11/2010 18:36:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 
INFO: Parsing configuration file [struts-default.xml] 
24/11/2010 18:36:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 
INFO: Parsing configuration file [struts-plugin.xml] 
24/11/2010 18:36:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 
INFO: Parsing configuration file [struts.xml] 
24/11/2010 18:36:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error 
GRAVE: Dispatcher initialization failed 
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.ContainerBuilder$5.create(ContainerBuilder.java:207) 
     at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51) 
     at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93) 
     at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487) 
     at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484) 
     at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574) 
     at com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484) 
     at com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:252) 
     at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193) 
     at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) 
     at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371) 
     at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415) 
     at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) 
     at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) 
     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) 
     at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) 
     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) 
     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) 
     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) 
     at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) 
     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) 
     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) 
     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 
     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
     at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:519) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:581) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:293) 
     ... 42 more 
Caused by: java.lang.ExceptionInInitializerError 
     at com.opensymphony.xwork2.ognl.OgnlValueStackFactory.setContainer(OgnlValueStackFactory.java:85) 
     ... 47 more 
Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency! 
     at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165) 
     ... 48 more 
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:169) 
     at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:162) 
     ... 48 more 
24/11/2010 18:36:06 org.apache.catalina.core.StandardContext start 
GRAVE: Error filterStart 
24/11/2010 18:36:06 org.apache.catalina.core.StandardContext start 
GRAVE: Context [/StrutsSample] startup failed due to previous errors 
24/11/2010 18:36:06 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap 
GRAVE: The web application [/StrutsSample] created a ThreadLocal with key of type [null] (value [[email protected]]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@11c2b67]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 
24/11/2010 18:36:07 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory docs 
24/11/2010 18:36:07 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory examples 
24/11/2010 18:36:08 org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory ROOT 
24/11/2010 18:36:08 org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
24/11/2010 18:36:08 org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
24/11/2010 18:36:08 org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/49 config=null 
24/11/2010 18:36:08 org.apache.catalina.startup.Catalina start 
INFO: Server startup in 4189 ms 
24/11/2010 18:36:08 org.apache.catalina.core.StandardContext stop 
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/StrutsSample] has not been started 
24/11/2010 18:36:09 org.apache.catalina.startup.HostConfig checkResources 
INFO: Undeploying context [/StrutsSample] 
24/11/2010 18:36:09 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor StrutsSample.xml 
24/11/2010 18:36:10 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 
INFO: Parsing configuration file [struts-default.xml] 
24/11/2010 18:36:10 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 
INFO: Parsing configuration file [struts-plugin.xml] 
24/11/2010 18:36:10 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 
INFO: Parsing configuration file [struts.xml] 
24/11/2010 18:36:10 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error 
GRAVE: Dispatcher initialization failed 
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.ContainerBuilder$5.create(ContainerBuilder.java:207) 
     at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51) 
     at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93) 
     at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487) 
     at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484) 
     at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574) 
     at com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484) 
     at com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:252) 
     at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193) 
     at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) 
     at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371) 
     at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415) 
     at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) 
     at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) 
     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) 
     at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) 
     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) 
     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) 
     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) 
     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:521) 
     at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1359) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) 
     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) 
     at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1500) 
     at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:849) 
     at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:351) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:199) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
     at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:293) 
     ... 54 more 
Caused by: java.lang.ExceptionInInitializerError 
     at com.opensymphony.xwork2.ognl.OgnlValueStackFactory.setContainer(OgnlValueStackFactory.java:85) 
     ... 59 more 
Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency! 
     at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165) 
     ... 60 more 
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:169) 
     at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:162) 
     ... 60 more 
24/11/2010 18:36:10 org.apache.catalina.core.StandardContext start 
GRAVE: Error filterStart 
24/11/2010 18:36:10 org.apache.catalina.core.StandardContext start 
GRAVE: Context [/StrutsSample] startup failed due to previous errors 
24/11/2010 18:36:10 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap 
GRAVE: The web application [/StrutsSample] created a ThreadLocal with key of type [null] (value [[email protected]]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@1b66b06]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 

ответ

1

И наконец исправлено!

Кажется, что некоторые пакеты на struts2 теперь требуют javassist (библиотека манипулирования byteloader от JBoss Project). Просто скачал javassist и добавил в библиотеку папку.

1

Да, это был случай, но в последнем выпуске был удален

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