Websphere 6.1 - Class Loader Hell [RESOLVIDO]

3 respostas
wesleyjoliveira

Caros Amigos,

Gostaria de saber se alguém conseguiu com sucesso usar o Websphere 6.1 para aplicacoes JSF.

Atualmente as tecnologias que uso nesse projeto são:
Maven, Facelets, Myfaces, RichFaces, Spring e Hibernate.

meu pom.xml está assim:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>br.com</groupId>
	<artifactId>controleDepartamentos</artifactId>
	<packaging>war</packaging>
	<version>1.0-SNAPSHOT</version>
	<name>Controle de Departamentos</name>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.apache.myfaces.core</groupId>
			<artifactId>myfaces-api</artifactId>
			<version>1.2.7</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.myfaces.core</groupId>
			<artifactId>myfaces-impl</artifactId>
			<version>1.2.7</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.myfaces.tomahawk 
			</groupId>
			<artifactId>tomahawk</artifactId>
			<version>1.1.9</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<artifactId>jstl</artifactId>
					<groupId>javax.servlet</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.myfaces.tomahawk 
			</groupId>
			<artifactId>tomahawk-sandbox</artifactId>
			<version>1.1.6</version>
			<exclusions>
				<exclusion>
					<groupId>poi</groupId>
					<artifactId>poi</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.richfaces.ui</groupId>
			<artifactId>richfaces-ui</artifactId>
			<version>3.3.1.GA</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>3.3.1.GA</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-annotations</artifactId>
			<version>3.4.0.GA</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>3.1.0.GA</version>
		</dependency>
		<dependency>
			<groupId>postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>8.3-603.jdbc3</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-hibernate</artifactId>
			<version>1.2.9</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>2.2</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<version>1.4.2</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.8.0.GA</version>
		</dependency>
		<dependency>
			<groupId>jasperreports</groupId>
			<artifactId>jasperreports</artifactId>
			<version>3.5.0</version>
			<exclusions>
				<exclusion>
					<artifactId>xml-apis</artifactId>
					<groupId>xml-apis</groupId>
				</exclusion>
				<exclusion>
					<groupId>commons-beanutils</groupId>
					<artifactId>commons-beanutils</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-collections</groupId>
					<artifactId>commons-collections</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-digester</groupId>
					<artifactId>commons-digester</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>argen</groupId>
			<artifactId>ArGen</artifactId>
			<version>0.8.1</version>
		</dependency>
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>jsr250-api</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>velocity</groupId>
			<artifactId>velocity</artifactId>
			<version>1.5</version>
		</dependency>
		<dependency>
			<groupId>quartz</groupId>
			<artifactId>quartz</artifactId>
			<version>1.5.2</version>
		</dependency>
		<dependency>
			<groupId>com.sun.facelets</groupId>
			<artifactId>jsf-facelets</artifactId>
			<version>1.1.14</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>controleDepartamento</finalName>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.0.2</version>
					<configuration>
						<source>1.5</source>
						<target>1.5</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-eclipse-plugin</artifactId>
					<version>2.4</version>
					<configuration>
						<downloadSources>false</downloadSources>
						<wtpversion>1.5</wtpversion>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>hibernate3-maven-plugin</artifactId>
					<version>2.2</version>
					<configuration>
						<components>
							<component>
								<name>hbm2ddl</name>
								<implementation>annotationconfiguration 
								</implementation>
							</component>
							<component>
								<name>hbm2hbmxml</name>
								<outputDirectory>src/main/resources 
								</outputDirectory>
							</component>
						</components>
						<componentProperties>
							<update>true</update>
							<drop>false</drop>
							<jdk5>true</jdk5>
							<configurationfile>/src/main/resources/hibernate.cfg.xml 
							</configurationfile>
						</componentProperties>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>org.hibernate</groupId>
							<artifactId>hibernate-annotations</artifactId>
							<version>3.4.0.GA</version>
						</dependency>
						<dependency>
							<groupId>org.hibernate</groupId>
							<artifactId>hibernate-validator</artifactId>
							<version>3.1.0.GA</version>
						</dependency>
						<dependency>
							<groupId>postgresql</groupId>
							<artifactId>postgresql</artifactId>
							<version>8.3-603.jdbc3</version>
						</dependency>
					</dependencies>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>jasperreports-maven-plugin</artifactId>
					<configuration>
						<outputDirectory>src/main/webapp/rel</outputDirectory>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>compile-reports</goal>
							</goals>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>jasperreports</groupId>
							<artifactId>jasperreports</artifactId>
							<version>3.5.0</version>
						</dependency>
					</dependencies>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>sql-maven-plugin</artifactId>

					<dependencies>
						<dependency>
							<groupId>postgresql</groupId>
							<artifactId>postgresql</artifactId>
							<version>8.3-603.jdbc3</version>
						</dependency>
					</dependencies>

					<configuration>
						<driver>org.postgresql.Driver</driver>
						<url>jdbc:postgresql://localhost:5432/teste</url>
						<username>postgres</username>
						<password>admin</password>
						<srcFiles>
							<srcFile>src/main/scripts-SQL/script-rotina.sql</srcFile>
						</srcFiles>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>jettyConfig</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>maven-jetty-plugin</artifactId>
						<configuration>
							<scanIntervalSeconds>10</scanIntervalSeconds>
						</configuration>
					</plugin>
				</plugins>
			</build>

			<pluginRepositories>
				<pluginRepository>
					<id>mortbay-repo</id>
					<name>mortbay-repo</name>
					<url>http://www.mortbay.org/maven2/snapshot 
					</url>
				</pluginRepository>
				<pluginRepository>
					<id>Codehaus Snapshots</id>
					<url>http://snapshots.repository.codehaus.org/ 
					</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
					<releases>
						<enabled>true</enabled>  <!-- Workaround for MNG-2974, see note below -->
					</releases>
				</pluginRepository>
			</pluginRepositories>

			<dependencies>
				<dependency>
					<groupId>javax.servlet</groupId>
					<artifactId>jsp-api</artifactId>
					<version>2.0</version>
					<scope>compile</scope>
				</dependency>
				<dependency>
					<groupId>tomcat</groupId>
					<artifactId>jasper-compiler</artifactId>
					<version>5.5.9</version>
					<scope>compile</scope>
				</dependency>
				<dependency>
					<groupId>tomcat</groupId>
					<artifactId>jasper-runtime</artifactId>
					<version>5.5.9</version>
					<scope>compile</scope>
				</dependency>
				<dependency>
					<groupId>tomcat</groupId>
					<artifactId>jasper-compiler-jdt</artifactId>
					<version>5.5.9</version>
					<scope>compile</scope>
				</dependency>
			</dependencies>
		</profile>
	</profiles>
	<repositories>
		<repository>
			<id>Codehaus Snapshots</id>
			<url>http://snapshots.repository.codehaus.org/ 
			</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
			<releases>
				<enabled>false</enabled>
			</releases>
		</repository>
		<repository>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots />
			<id>apache-maven-snapshots</id>
			<url>http://people.apache.org/repo/m2-snapshot-repository 
			</url>
		</repository>
		<repository>
			<id>java.net</id>
			<url>http://download.java.net/maven/1 
			</url>
			<layout>legacy</layout>
		</repository>
		<repository>
			<id>jboss</id>
			<url>http://repository.jboss.com/maven2/ 
			</url>
			<layout>default</layout>
		</repository>
		<repository>
			<id>com.springsource.repository.bundles.release</id>
			<name>SpringSource Enterprise Bundle Repository -
				SpringSource Releases</name>
			<url>http://repository.springsource.com/maven/bundles/release</url>
		</repository>
		<repository>
			<id>com.springsource.repository.bundles.external</id>
			<name>SpringSource Enterprise Bundle Repository -
				External Releases</name>
			<url>http://repository.springsource.com/maven/bundles/external</url>
		</repository>
		<repository>
			<id>jaspersoft</id>
			<url>http://www.jasperforge.org/maven2</url>
		</repository>
	</repositories>
</project>

Qualquer ajuda será bem vinda pois no GlassFish a aplicação roda que é uma beleza agora no WAS 6.1…

A Aplicação sobre no WAS 6.1 mas fica em branco!!!

Valeu

3 Respostas

gomesrod

Olá,

Aqui nós usamos Jsf no Websphere 6.1
Funciona, mas é apenas com a implementação Jsf padrão da IBM, nunca testei com outras.

O que você poderia fazer é o seguinte: Criar um projeto mais simples possível, apenas com MyFaces e uma página “hello world”. Depois acrescente o Facelets, Richfaces e os demais frameworks, para saber em que ponto ele está se perdendo.

wesleyjoliveira

Tenho bastante coisa desenvolvida em cima disso e não posso abrir mão da implementacao do myfaces e richfaces. Vou continuar tentando aqui e se alguem tiver ao menos uma luz já ajuda!

Valeu

wesleyjoliveira

Consegui resolver o meu problema aqui.

Segue os passos que usei.

  1. Crie uma propriedade personalizada:
    Caminho: Servidores de Aplicativos > server1 > Container da Web > Propriedades Personalizadas.
    Crie o atributo:
com.ibm.ws.webcontainer.invokefilterscompatibility com valor true
  1. Copie os arquivos abaixo para a pasta server/lib-myfaces
beanutils-1.8.0.jar
commons-codec-1.3.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-discovery-0.4.jar
commons-el-1.0.jar
commons-lang-2.4.jar
el-api-1.0-.jar
el-impl-1.0.jar
jsf-facelets-1.1.14.jar
jstl-1.2.jar
myfaces-api-1.2.7.jar
myfaces-impl-1.2.7.jar
jsr250-api-1.0.jar
  1. Crie uma biblioteca compartilhada com esses arquivos
    Caminho: Ambiente > Bibliotecas Compartilhadas.

Essa é a lista de arquivos para colocar na biblioteca compartilhada (Caminho da Classe)

${WAS_INSTALL_ROOT}/libs-myfaces/beanutils-1.8.0.jar
${WAS_INSTALL_ROOT}/libs-myfaces/commons-codec-1.3.jar
${WAS_INSTALL_ROOT}/libs-myfaces/commons-collections-3.2.jar
${WAS_INSTALL_ROOT}/libs-myfaces/commons-digester-1.8.jar
${WAS_INSTALL_ROOT}/libs-myfaces/commons-discovery-0.4.jar
${WAS_INSTALL_ROOT}/libs-myfaces/commons-el-1.0.jar
${WAS_INSTALL_ROOT}/libs-myfaces/commons-lang-2.4.jar
${WAS_INSTALL_ROOT}/libs-myfaces/el-api-1.0-.jar
${WAS_INSTALL_ROOT}/libs-myfaces/el-impl-1.0.jar
${WAS_INSTALL_ROOT}/libs-myfaces/jsf-facelets-1.1.14.jar
${WAS_INSTALL_ROOT}/libs-myfaces/jstl-1.2.jar
${WAS_INSTALL_ROOT}/libs-myfaces/myfaces-api-1.2.7.jar
${WAS_INSTALL_ROOT}/libs-myfaces/myfaces-impl-1.2.7.jar
${WAS_INSTALL_ROOT}/libs-myfaces/jsr250-api-1.0.jar
  1. Crie um ClassLoader no servidor
    Caminho: Servidor de Aplicativos > server1 > Carregador de Classes
    Escolha a opção “Classes carregadas com carregador de classe de APLICATIVO primeiro”.

  2. Referencie a biblioteca compartilhada no ClassLoader Criado
    Caminho: Servidor de Aplicativos > server1 > Carregador de Classes > ClassLoaderXXX.
    Inclua nesse passo sua biblioteca compatilhada.

  3. Copie os arquivos abaixo para a pasta server/lib

commons-beanutils-1.8.0.jar
jsr250-api-1.0.jar
  1. Reinicie o Websphere

Boa sorte com o Deploy!

Criado 11 de agosto de 2009
Ultima resposta 13 de ago. de 2009
Respostas 3
Participantes 2