Configurar 1º Struts 2: Recebo sempre o mesmo log de erros

8 respostas
A

Pessoal, estou tendo problemas para configurar meu primeiro exemplo struts 2 =/. O estranho é que ja segui diferentes exemplos que encontrei pela net mas o erro é sempre o mesmo; nao importa como eu configure a aplicação. Gostaria da ajuda de voces para desvendar esse “mistério”, porq eu estou realmente perdido, o eclipse nao chega nem a subir o projeto no tomcat!!! Abaixo esta o log de erro que recebo.
Obrigado pela ajuda.

<blockquote>05/10/2010 09:30:28 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:\Arquivos de programas\Java\jdk1.6.0_14\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre6/bin/client;C:/Arquivos de programas/Java/jre6/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\TortoiseSVN\bin

05/10/2010 09:30:28 org.apache.tomcat.util.digester.SetPropertiesRule begin

WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property source to org.eclipse.jst.jee.server:Ssm did not find a matching property.

05/10/2010 09:30:28 org.apache.coyote.http11.Http11Protocol init

INFO: Initializing Coyote HTTP/1.1 on http-8080

05/10/2010 09:30:28 org.apache.catalina.startup.Catalina load

INFO: Initialization processed in 517 ms

05/10/2010 09:30:28 org.apache.catalina.core.StandardService start

INFO: Starting service Catalina

05/10/2010 09:30:28 org.apache.catalina.core.StandardEngine start

INFO: Starting Servlet Engine: Apache Tomcat/6.0.29

05/10/2010 09:30:29 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info

INFO: Parsing configuration file [struts-default.xml]

05/10/2010 09:30:29 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info

INFO: Parsing configuration file [struts-plugin.xml]

05/10/2010 09:30:29 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info

INFO: Parsing configuration file [struts.xml]

05/10/2010 09:30:29 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info

INFO: Loading global messages from ApplicationResources

05/10/2010 09:30:29 org.apache.catalina.core.StandardContext filterStart

SEVERE: Exception starting filter struts2

java.lang.RuntimeException: java.lang.RuntimeException: 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.getInstance(ContainerImpl.java:507)

at com.opensymphony.xwork2.inject.ContainerImpl$8.call(ContainerImpl.java:540)

at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574)

at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:538)

at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:213)

at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)

at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)

at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)

at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)

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.(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.start(ContainerBase.java:1045)

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.RuntimeException: java.lang.RuntimeException: 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)

 28 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$ConstructorInjector.construct(ContainerImpl.java:417)

at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:492)

 33 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)

 39 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)

 44 more

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)

 46 more

Caused by: java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils

at org.apache.struts2.convention.PackageBasedActionConfigBuilder.setIncludeJars(PackageBasedActionConfigBuilder.java:157)

 51 more

Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

 52 more

05/10/2010 09:30:29 org.apache.catalina.core.StandardContext start

SEVERE: Error filterStart

05/10/2010 09:30:29 org.apache.catalina.core.StandardContext start

SEVERE: Context [/Ssm] startup failed due to previous errors

05/10/2010 09:30:29 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap

SEVERE: The web application [/Ssm] created a ThreadLocal with key of type [null] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@11756a4]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@13936e1]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.

05/10/2010 09:30:29 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap

SEVERE: The web application [/Ssm] created a ThreadLocal with key of type [null] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@141fab6]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@b301f2]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.

</blockquote>

8 Respostas

von.juliano

Quais jars você colocou no seu classpath? Se colocou todos ele dá erro mesmo.

Tente colocar no classpath apenas os seguintes jars:

struts2-core-2.2.1.jar
struts2-convention-plugin-2.2.1.jar
xwork-core-2.2.1.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
ognl-3.0.jar

Vê se resolve! Flw! :thumbup:

A

São esses mesmos! ja tentei colocar outros (jUnit.jar,xwork.jar, etc) mas continua o mesmo erro.
Só uma coisa, classpath que vc diz é apenas colocar na minha pasta lib correto!? Não é preciso configurar variaveis de ambiente ou build path no eclipse correto?

von.juliano

Dê uma olhada nesse tópico, deve ser o mesmo problema.

Flw! :thumbup:

A

blz Juliano, dei uma olhada no topico e conferi pra ver se nao cometi os mesmos erros.
Bom, eu lembro que tinha copiado os jars do struts pra pasta lib do tomcat mesmo, mas ja tinha apagado! Fui conferir novamente e restaram 2 jars:

xwork.jar
commons-collections.jar

apaguei os dois! mas o erro continua T_T.

nao pode ser incompatibilidade entre os jars? ou sei la, falta configurar alguma coisa?
vou postar meus arquivos (acredito que o erro seja no web.xml ou struts.xml, ja que fiz varios exemplos e apenas esses sao os mesmos (sei la):

[img]http://img685.imageshack.us/img685/8479/imagemvcz.png[/img]

WEB.XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>Ssm</display-name>
<!--	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list> -->

 	 <filter>
	 	 <filter-name>struts2</filter-name>
	 	 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	 </filter>
	 <filter-mapping>
		 <filter-name>struts2</filter-name>
		 <url-pattern>/*</url-pattern>
	 </filter-mapping>
	 <welcome-file-list>
		 <welcome-file>login.jsp</welcome-file>
	 </welcome-file-list>

</web-app>

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.enable.DynamicMethodInvocation" value="false" />
	<constant name="struts.devMode" value="false" />
	<constant name="struts.custom.i18n.resources" value="ApplicationResources" />

	<package name="default" extends="struts-default" namespace="/">
		<action name="login" class="br.com.telvent.ssm.action.LoginAction">
			<result name="success">home.jsp</result>
			<result name="error">login.jsp</result>
		</action>
	</package>
</struts>

LOGIN.JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Sistema de Supervis&atilde;o e Monitoramento</title>
	<link href="./css/stylesheet.css" rel="stylesheet" type="text/css" />
	<script language="JavaScript" src="./js/javaScript.js"></script>
</head>

<body>
<div class="logoMetro"><img src="./img/logoMetro.png" width="150px" height="87px" /></div>
<div class="logoTelvent"><img src="./img/logoTelvent.png" width="840px" height="87px" /></div>

<div class="divLogin"><s:form name="form" method="post" action="home.jsp">
	<table width="994px" border="0" cellpadding="0" cellspacing="0">
		<tr>
			<td height="100px">&nbsp;</td>
		</tr>
		<tr>
			<td width="50%" align="center" valign="middle">
			<table align="center" border="0" cellpadding="2" cellspacing="2">
				<tr>
					<td width="105px" class="header"><s:textfield name="username" key="label.login" size="20" /></td>
					<td><input type="text" id="txtLogin" maxlength="20" value="" style="width: 300px;" /></td>
				</tr>
				<tr>
					<td class="header"><s:password name="password" key="label.senha" size="20" /></td>
					<td><input type="password" name="txtSenha" id="txtSenha" maxlength="20" value="" style="width: 300px;" /></td>
				</tr>
				<tr>
					<td colspan="2">
					<table align="center" border="0" cellpadding="0" cellspacing="0">
						<tr>
							<td><input type="submit" name="btnOK" id="btnOK" value="Ok" style="width: 80px;" /></td>
							<td width="15px">&nbsp;</td>
							<td><input type="button" name="btnCancel" id="btnCancel" value="Cancel" onclick="javascript: document.form.reset();" style="width: 80px;" /></td>
						</tr>
					</table>
					</td>
				</tr>
			</table>
			</td>
		</tr>
	</table>
</s:form></div>
</body>
</html>

LOGINACTION.JAVA

package br.com.telvent.ssm.action;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
	private String login;
	private String senha;

	public String execute() {

		if (this.login.equals("admin")
				&& this.senha.equals("admin")) {
			return "success";
		} else {
			addActionError(getText("error.login"));
			return "error";
		}
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}
}

vlw pela ajuda.

von.juliano

Remova o xwork-2.0.4.jar, creio que vai resolver.

Flw! :thumbup:

A

É, tambem nao é isso! deletei e ainda da erro! o log mudou, eu atualizei ele la.
vlw

von.juliano

Estão acabando as minhas alternativas! :mrgreen:
Tente o seguinte, no seu web.xml substitua a configuração do filter pela seguinte:

<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>br.com.empresa.projeto.action</param-value> </init-param> </filter>
Espero que agora resolva! Flw! :thumbup:

A

Tirei o jar xwork e mudei o web.xml; eu tambem tinha deletado a web app Libraries inteira sem querer e adicionei ela de novo. Noa sei se tem alguam coisa a ver, mas agora funciono kkkkkkkkkkk

Juliano brigadao mano! depois de tanta luta consegui configurar o struts2.
vlw men, até a proxima =)

Criado 4 de outubro de 2010
Ultima resposta 5 de out. de 2010
Respostas 8
Participantes 2