[Resolvido] [Weblogic] Erro no arquivo "web.xml"

Fala ae pessoal,

Estou tendo um problema meio estranho em uma aplicação que estou dando manutenção.

O Weblogic está acusando erro no arquivo “web.xml”, dizendo que ele está mal formado, porém ele está aparentemente normal.

Sou meio novato em JEE, e ñ manjo quase nada de Weblogic também, então se alguém souber do q se trata esse erro, agradeço =D

Segue abaixo o stack trace do erro e o xml em questão:

[code]####<Feb 15, 2011 11:35:24 AM BRST> <Homolog_Node1> <ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.System’> <> <> <[Application: ‘/app/bea/bea_homolog/user_projects/domains/Homologacao/admin/upload’, Module: ‘mcap’]: Deployment descriptor “web.xml” is malformed. Check against the DTD: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘web-app’. (line 4, column 71).>
####<Feb 15, 2011 11:35:24 AM BRST> <Homolog_Node1> <ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.System’> <> <> <[Application: ‘/app/bea/bea_homolog/user_projects/domains/Homologacao/admin/upload’, Module: ‘mcap’]: Deployment descriptor “weblogic.xml” is malformed. Check against the DTD: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘weblogic-web-app’. (line 2, column 19).>
####<Feb 15, 2011 11:35:25 AM BRST> <Homolog_Node2> <ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.System’> <> <> <[Application: ‘/app/bea/bea_homolog/user_projects/domains/Homologacao/admin/upload’, Module: ‘mcap’]: Deployment descriptor “web.xml” is malformed. Check against the DTD: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘web-app’. (line 4, column 71).>
####<Feb 15, 2011 11:35:25 AM BRST> <Homolog_Node2> <ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.System’> <> <> <[Application: ‘/app/bea/bea_homolog/user_projects/domains/Homologacao/admin/upload’, Module: ‘mcap’]: Deployment descriptor “weblogic.xml” is malformed. Check against the DTD: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘weblogic-web-app’. (line 2, column 19).>
####<Feb 15, 2011 11:35:39 AM BRST> <Homolog_Node2> <ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.System’> <> <> <Failed to complete the deployment task with ID 23 for the application mcap.
weblogic.management.ApplicationException:
Exception:weblogic.management.ApplicationException: prepare failed for mcap
Module: mcap Error: Could not load mcap: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2556)
    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
    at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
    at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

--------------- nested within: ------------------
weblogic.management.ManagementException: - with nested exception:
[weblogic.management.ApplicationException:
Exception:weblogic.management.ApplicationException: prepare failed for mcap
Module: mcap Error: Could not load mcap: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
]
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2491)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

####<Feb 15, 2011 11:35:39 AM BRST> <ExecuteThread: ‘3’ for queue: ‘weblogic.kernel.System’> <> <>
####<Feb 15, 2011 11:35:39 AM BRST> <ExecuteThread: ‘2’ for queue: ‘weblogic.admin.RMI’> <> <>
####<Feb 15, 2011 11:35:39 AM BRST> <Homolog_Node1> <ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.System’> <> <> <Failed to complete the deployment task with ID 23 for the application mcap.
weblogic.management.ApplicationException:
Exception:weblogic.management.ApplicationException: prepare failed for mcap
Module: mcap Error: Could not load mcap: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2556)
    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
    at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
    at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

--------------- nested within: ------------------
weblogic.management.ManagementException: - with nested exception:
[weblogic.management.ApplicationException:
Exception:weblogic.management.ApplicationException: prepare failed for mcap
Module: mcap Error: Could not load mcap: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
]
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2491)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

####<Feb 15, 2011 11:35:39 AM BRST> <Homolog_Node1> <ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.System’> <> <> <Attempted to report an exception to DRS and received an error.
NotificationException due to underlying exception weblogic.drs.internal.InvalidStateException: Slave update for DataIdentifier DataIdentifierID: 1 received a prepareFailed() call - this can only be called if update is in AwaitingPrepareCompletion state
at weblogic.drs.internal.statemachines.slave.SlaveState.prepareFailed(SlaveState.java:68)
at weblogic.drs.internal.DataReplicationService.notifyPrepareFailure(DataReplicationService.java:334)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:548)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

####<Feb 15, 2011 11:35:39 AM BRST> <ExecuteThread: ‘2’ for queue: ‘weblogic.admin.RMI’> <> <> [/code]

[code]<?xml version="1.0" encoding="UTF-8"?>

<!--

Purpose:  	Web deployment descriptor contains deployment related information
			of the web application.  All elements specified in this file will
			be loaded at the time when application is loaded into container.

			We define following elements inside this file

			* Servlets definition and mapping (for ex. Spring Dispatcher servlet)
			* Display Name (which will be shown in the server console after deployment)
			* Spring Configuration files
			* SiteMesh Configuration files
			* Listeners (for ex. Spring Context Configuration listener)
			* Filters (for ex. SiteMesh, Security, etc.)
			* Welcome Page
			* Error Page

Location: 	It should be placed in the WEB-INF directory

-->

<!-- Site name, replace with the relevant name -->
<display-name>mcap</display-name>

<!-- For modularity we have split the spring context configuration into several files.
	 Add/delete files in this section as per project requirements.
-->
<!-- Define all files that should get loaded at application startup (i.e. configuration files) -->
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>
		<!-- Configuration file location-->
		/WEB-INF/web-application-config.xml
	</param-value>
</context-param>

<!-- Configure ContextLoaderListener to load configuration files defined in above section
at application start-up. -->
<listener>
	<listener-class>
		org.springframework.web.context.ContextLoaderListener
	</listener-class>
</listener>
<listener>
	<listener-class>net.sf.navigator.menu.MenuContextListener</listener-class>
</listener>

<!-- Configure the main servlet used by spring web application. -->
<servlet>
	<!-- *** Replace servlet name from "Sample" to a relevant name *** -->
	<servlet-name>actionServlet</servlet-name>
	<servlet-class>
		org.springframework.web.servlet.DispatcherServlet
	</servlet-class>
	<init-param>
		<param-name>namespace</param-name>
		<param-value>classes/action-servlet</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>actionServlet</servlet-name>
	<url-pattern>*.action</url-pattern>
</servlet-mapping>

<servlet-mapping>
	<servlet-name>actionServlet</servlet-name>
	<url-pattern>*.actionAjax</url-pattern>
</servlet-mapping>

<servlet-mapping>
	<servlet-name>actionServlet</servlet-name>
	<url-pattern>*.html</url-pattern>
</servlet-mapping>

<servlet-mapping>
	<servlet-name>actionServlet</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

<servlet-mapping>
	<!-- *** This name should match with "servlet-name" entry in servlet tag above *** -->
	<servlet-name>actionServlet</servlet-name>
	<!-- *** Specify which type of URL's should be mapped to swf. *** -->
	<url-pattern>/flows/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
	<!-- *** This name should match with "servlet-name" entry in servlet tag above *** -->
	<servlet-name>actionServlet</servlet-name>
	<!-- *** Specify which type of URL's should be mapped to swf. *** -->
	<url-pattern>/decorators/*</url-pattern>
</servlet-mapping>
<!-- ================= Spring Security related configuration =============== -->
<!--  In case of using SiteMesh , Security filter should be declared before SiteMesh filters -->
<!-- Configure this section if you are suing Spring Security in application-->
<!-- Configuring security filter 
<filter>
	<filter-name>springSecurityFilterChain</filter-name>
	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>-->
<!-- Map incoming URLS to security filter -->
<!-- *** Map which URL?s should hit Security servlet *** move it later 
<filter-mapping>
	<filter-name>springSecurityFilterChain</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
	<filter-name>springSecurityFilterChain</filter-name>
	<url-pattern>/flows/*</url-pattern>
</filter-mapping> -->


<!-- ================= SiteMesh configuration =============== -->

<!-- Configure SiteMesh filter 
<filter>
	<filter-name>sitemesh</filter-name>
	<filter-class>
		com.opensymphony.module.sitemesh.filter.PageFilter
	</filter-class>
</filter>-->

<!-- Map incoming URLS to sitemesh filter 
<filter-mapping>
	<filter-name>sitemesh</filter-name> -->
	<!-- *** We need to define what URL's need to be mapped to sitemesh. *** 
	<url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
	<filter-name>sitemesh</filter-name> -->
	<!-- *** We need to define what URL's need to be mapped to sitemesh. *** 
	<url-pattern>/flows/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping> -->
<!-- ================= General settings =============== -->

<!-- ================= Filtro de autenticação =============== -->
<filter>
	<filter-name>FiltroAutenticacao</filter-name>
	<filter-class>
		com.company.mcap.filters.FiltroAutenticacao
	</filter-class>
</filter>
<filter-mapping>
	<filter-name>FiltroAutenticacao</filter-name>
	<url-pattern>*.action</url-pattern>
</filter-mapping>

<!-- Define Welcome page List -->
<welcome-file-list>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

[/code]

qual versão do WLS?

a aplicação funcionava nesse mesmo server?

A propósito, é um cluster, certo?

Sobe um server ( o que não acusou erro ) e veja o que acontece!

A versão do servidor de desenvolvimento é Weblogic 8 SP6, porém a versão do ambiente de homologação em que o erro está ocorrendo é Weblogic 8 SP2.

Acredito que o problema seja causado pela diferença nas versões do weblogic, mas o que impede esse xml de funcionar no SP2?

Resolvi o problema. Ele era causado pelo fato de algumas libs do Spring que estou usando só funcionarem com a versão do Weblogic 8 a partir do SP5.

Problema resolvido.

O erro era causado por causa da versão do WLS mesmo. Estou usando algumas libs do Spring que só funcionam com o Weblogic 8 a partir do SP5.

De qualquer maneira, vlw pela atenção povo o/

Edit: Mal o spam povo… Eu mandei o primeiro post e ele não tinha aparecido, por isso mandei um segundo =/