quarta-feira, 24 de outubro de 2012

NoClassDefFoundError SessionLogEntry

Olá,

Hoje tive o erro java.lang.NoClassDefFoundError: org/eclipse/persistence/logging/SessionLogEntry ao fazer deploy da minha aplicação no WebSphere 8.

Segue log completo:

[23/10/12 14:31:14:570 BRST] 00000025 AppManagement W ADMA0116W: Unable to start: myapp-ear using: WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=localhost8080Node01,version=8.0.0.0,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=localhost8080Node01Cell,spec=1.0 exception is: javax.management.MBeanException: Exception thrown in RequiredModelMBean while trying to invoke operation startApplication
at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1112)
[...]
Caused by: com.ibm.ws.exception.RuntimeError: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/eclipse/persistence/logging/SessionLogEntry
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:753)
[...]
at org.eclipse.persistence.internal.sessions.AbstractSession.log(AbstractSession.java:4218)

O erro era porque eu não tinha nenhuma classe com @Entity na minha aplicação.. aí dava esse NoClassDefFoundError SessionLogEntry...

Ao adicionar essa classe:

package br.com.localhost8080.myapp;

import javax.persistence.Entity;

@Entity
public class MyTest {

}

O erro parou de acontecer!

Tive um erro semelhante a esse que postei em: http://localhost8080.blogspot.com.br/2012/10/nomodulefileexception.html

Vaaaaleu!!
Adriano Schmidt

quarta-feira, 10 de outubro de 2012

NoModuleFileException

Hoje tive o erro abaixo ao fazer deploy da minha aplicação no websphere 8:

Archive is not a valid EJB JAR File because the deployment descriptor can not be found (case sensitive): META-INF/ejb-jar.xml

org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl initModuleFileFromEAR Ignoring ClassCastException [ org.eclipse.jst.j2ee.commonarchivecore.internal.impl.FileImpl incompatible with org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile ]

org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: dd_in_ear_load_EXC_]

Caused by: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.NoModuleFileException: A file does not exist for module element having uri: myproject-ejb-1.0-SNAPSHOT.jar

Isso aconteceu pois era um projeto novo que eu estava criando e o meu jar de EJBs não tinha nehum EJB, não tinha nenhuma classe com @Stateless.

Se eu criasse uma classe como a classe abaixo o problema não acontecia mais.

@Stateless
public class MeuTesteServiceBean {

}

Vaaaleu!!
Adriano Schmidt

quinta-feira, 27 de setembro de 2012

constructor Service JAX-WS 2.2

Olá, hoje ao gerar um client para web services através de um wsdl (utilizei o gerador de client ws do eclipse) tive o seguinte erro de compilação:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project ProjectL8-ejb: Compilation failure: Compilation failure:
[exec] [ERROR] \work\workspaces\workspace-juno\ProjectL8\ProjectL8-ejb\src\main\java\br\com\localhost8080\wstest\ws\test\TestService.java:[39,8] cannot find symbol
[exec] [ERROR] symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
[exec] [ERROR] location: class javax.xml.ws.Service

Isso acontece pois o maven está usando a classe Service errada:

javax.xml.ws.Service encontrada no "JDK SE 1.6" e no "JAX-WS 2.1" não tem este construtor com três parâmetros.

javax.xml.ws.Service encontrada no "JAX-WS 2.2" é a versão correta.

Você pode alterar o build-path diretamente do seu projeto para utilizar o jaxws-api.jar ou então alterar o seu pom para usar o "JAX-WS 2.2.x", basta adicionar no seu pom o que está no link a seguir:

http://jax-ws-commons.java.net/jaxws-maven-plugin/examples/using-jaxws22-on-jdk6.html

Vaaleu!!
Adriano Schmidt

terça-feira, 19 de junho de 2012

IDENTITY_INSERT OFF

Hoje um amigo aqui da empresa me perguntou:

"Adriano, usei a query abaixo em um banco SQLSERVER e deu esse erro ali, sabe o que pode ser?"
insert into my_table (id, description, situation_type) values (14, 'aaaa', 1);
Error: Não é possível inserir um valor explícito para a coluna de identidade na tabela 'my_table' quando IDENTITY_INSERT está definido como OFF.


Para resolver bastou tirar o id da query e deixar esse trabalho para o próprio banco de dados:

insert into my_table (description, situation_type) values ('aaaa', 1);

Pronto, resolvido!

Abraços!
Adriano Schmidt

sexta-feira, 13 de abril de 2012

firefox id is not defined

Opa..

Hoje meu código estava funcionando perfeitamente no IE e no Chrome, porém no firefox tive o erro:

myDiv is not defined

Meu código javascript estava assim:

myDiv.style.display = 'none';

Alterei para:

document.getElementById('myDiv').style.display = 'none';

E então funcionou em todos os browsers!

Abraaço!
Adriano Schmidt

quarta-feira, 4 de abril de 2012

Attribute name "checked" associated with an element type "input" must be followed by the ' = ' character.

Olá,

Em um projeto com JSF2 ao usar o atributo checked dessa forma:

<input type="radio" name="cc" onclick="test1(0); test2(0);" checked> <h:outputLabel value="#{i18n.test}"/> </input>

eu tive o seguinte erro:

08:49:06,576 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/localhost8080].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception: javax.faces.view.facelets.FaceletException: Error Parsing /resources/localhost8080/TestFormComponent.xhtml: Error Traced[line: 138] Attribute name "checked" associated with an element type "input" must be followed by the ' = ' character.
at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:387) [:2.0.2-FCS]
at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:361) [:2.0.2-FCS]
at com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:117) [:2.0.2-FCS]
at com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:331) [:2.0.2-FCS]

para resolver usei checked="checked":

<input type="radio" name="cc" onclick="test1(0); test2(0);" checked="checked"> <h:outputLabel value="#{i18n.test}"/> </input>

Simples assim : )

Abraços!
Adriano Schmidt