EJB 3: TypeNotPresentExceptionProxy

4 respostas
C

Galera,

Estou tentando subir um EJB JAR (EJB3) no JBoss e ele esta me mostrando um erro que nao consigo identificar. 

Meu sistema tem 2 EJBs (EJBProfile, EJBIncident), e o estranho é que o EJBProfile esta funcionando perfeitamente, mas quando coloco o EJBIncidete, ele me gera esse erro. Alguem ja viu algo parecido?
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
	at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653)
	at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460)
	at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
	at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
	at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
	at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
	at java.lang.Class.initAnnotationsIfNecessary(Class.java:3031)
	at java.lang.Class.getAnnotation(Class.java:2989)
	at org.jboss.aop.annotation.AnnotationElement.getVisibleAnnotation(AnnotationElement.java:88)
	at org.jboss.aop.Advisor.resolveAnnotation(Advisor.java:321)
	at org.jboss.ejb3.ProxyDeployer.initializeRemoteBindingMetadata(ProxyDeployer.java:125)
	at org.jboss.ejb3.SessionContainer.instantiated(SessionContainer.java:113)
	at org.jboss.ejb3.Ejb3Deployment.deployElement(Ejb3Deployment.java:474)
	at org.jboss.ejb3.Ejb3Deployment.deployElement(Ejb3Deployment.java:424)
	at org.jboss.ejb3.Ejb3Deployment.deployUrl(Ejb3Deployment.java:405)
	at org.jboss.ejb3.Ejb3Deployment.deploy(Ejb3Deployment.java:366)
	at org.jboss.ejb3.Ejb3Deployment.create(Ejb3Deployment.java:321)
	at org.jboss.ejb3.Ejb3Module.createService(Ejb3Module.java:77)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:243)
	at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.create(Unknown Source)
	at org.jboss.system.ServiceController.create(ServiceController.java:330)
	at org.jboss.system.ServiceController.create(ServiceController.java:273)
	at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy33.create(Unknown Source)
	at org.jboss.ejb3.EJB3Deployer.create(EJB3Deployer.java:492)
	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:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
	at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
	at org.jboss.ws.integration.jboss42.DeployerInterceptor.create(DeployerInterceptor.java:73)
	at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.create(SubDeployerInterceptorSupport.java:180)
	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:91)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy34.create(Unknown Source)
	at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
	at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy9.deploy(Unknown Source)
	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
	at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.start(Unknown Source)
	at org.jboss.system.ServiceController.start(ServiceController.java:417)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy4.start(Unknown Source)

4 Respostas

A

Posta os códigos

C
asaudate:
Posta os códigos
Bom, vamos la: incident.jndi.properties
# incident.jndi.properties
# propriedades para conectar ao servico de nomes do JBoss
# modifique java.naming.provider.url para conectar a um servidor remoto 
#
java.naming.factory.initial=org.jboss.naming.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
#
# propriedades para localizar entradas no servico de nomes
# 
itsmee.ejb3.user.transaction=UserTransaction
 
itsmee.ejb3.incident.abertura=IncidentSessionFacadeEjb3/remote
itsmee.ejb3.incident.atendimento=AtendimentoSessionFacadeEjb3/remote
incident.jndi.properties
<?xml version="1.0" encoding="UTF-8"?>
<!--
	Copyright 2007 HoldTI
	
	Suite de Produtos ITIL 
	HOLD TI Tecnologia da Informação
	São Paulo - Brasil
	
	http://www.holdti.com.br
	
	Engenheiro de Software: Marcio Valverde
	Data: 16/10/2007
	
	web.xml

	20/12/2007 B4
-->
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

...

	<listener>
		<listener-class>br.com.holdti.itsmee.incident.context.IncidentEjbBusinessFactory</listener-class>
	</listener>
		
...

</web-app>
EjbIncidentFactory
package br.com.holdti.itsmee.incident.factory;

import java.util.Properties;
...

public class EjbIncidentFactory extends IncidentFactory {
	
	public static final String JNDI_PROPERTY_USER_TRANSACTION   = "itsmee.ejb3.user.transaction";
	
	public static final String INCIDENT_EJB3_ABERTURA           = "itsmee.ejb3.incident.abertura";
	public static final String INCIDENT_EJB3_ATENDIMENTO        = "itsmee.ejb3.incident.atendimento";
	
	
	private static Properties jndiProperties;
	private InitialContext initCtx;
	private UserTransaction userTransaction;

	// =============================================================================
	// JTA/JTS
	// =============================================================================

	@Override
	public void beginTransaction() {
		// 
		try {
			if (initCtx == null) {
				initCtx = new InitialContext(jndiProperties);
				String jndiName = jndiProperties
						.getProperty(JNDI_PROPERTY_USER_TRANSACTION);
				userTransaction = (UserTransaction) initCtx.lookup(jndiName);
			}
			if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) {
				userTransaction.begin();
			}
		} catch (Exception e) {
			initCtx = null;
			throw new RuntimeException(e);
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see br.com.holdti.itsmee.commons.login.factory.CommonBusinessFactory#commitTransaction(boolean)
	 */
	@Override
	public void commitTransaction(boolean releaseResources) {
		try {
			if (initCtx != null) {
				if (userTransaction.getStatus() == Status.STATUS_ACTIVE) {
					userTransaction.commit();
				}
				if (releaseResources) {
					this.userTransaction = null;
					this.initCtx.close();
					this.initCtx = null;
				}
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see br.com.holdti.itsmee.commons.login.factory.CommonBusinessFactory#rollbackTransaction(boolean)
	 */
	@Override
	public void rollbackTransaction(boolean releaseResources) {
		try {
			if (initCtx != null) {
				if (userTransaction.getStatus() == Status.STATUS_ACTIVE) {
					userTransaction.rollback();
				}
				if (releaseResources) {
					this.userTransaction = null;
					this.initCtx.close();
					this.initCtx = null;
				}
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/*
	 * 
	 */
	public static Properties getJndiProperties() {
		return jndiProperties;
	}

	/*
	 * 
	 */
	public static void setJndiProperties(Properties initCtxtProperties) {
		EjbIncidentFactory.jndiProperties = initCtxtProperties;
	}

	// =============================================================================
	// EJB REFERENCES
	// =============================================================================

	@Override
	public IIncidentSessionFacade getIncidentSessionFacade() {
		try {
			String jndiName = jndiProperties.getProperty(EjbIncidentFactory.INCIDENT_EJB3_ABERTURA);  
			IIncidentSessionFacade facade = (IIncidentSessionFacade) initCtx.lookup(jndiName);
		    return facade;
		} catch (NamingException e) {
		      throw new RuntimeException(e);
	    }
	}

}
Tem uma Classe JPA Tambem Incident
package br.com.holdti.itsmee.incident.abertura.model;

import static javax.persistence.GenerationType.IDENTITY;
...

@Entity
@Table(schema = "dbo", name = "XTB_CHAMADO", catalog = "ITSMDB")
public class Incident implements Serializable {

    private static final long serialVersionUID = 1L;

    // ------------------------------------------------------------------
    // fields of table
    // ------------------------------------------------------------------

    @Id
    @Column(name = "CD_PK_CHAMADO")
    @GeneratedValue(strategy = IDENTITY)
    private Integer id;
    
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "CD_FK_TPGRSOLUCIONADOR" , insertable=true, updatable=true)
    @Fetch(FetchMode.JOIN)
    private TiposGrupoSolucionador tiposGrupoSolucionador;
    
...
    
}
P

a exception que voce esta tomando é a java.lang.ArrayStoreException, e nao TypeNotPresentExceptionProxy.

ArrayStoreException é quando voce adicinou numa array um objeto que é compativel com aquele tipo

E isso realmente nao deveria ta acontecendo… erro no codigo da sun.

Provavelmente sao versoes de jars, jaxb, etc. Teste rodar com java5 no cliente e servidor.

C

Paulo Silveira:
a exception que voce esta tomando é a java.lang.ArrayStoreException, e nao TypeNotPresentExceptionProxy.

ArrayStoreException é quando voce adicinou numa array um objeto que é compativel com aquele tipo

E isso realmente nao deveria ta acontecendo… erro no codigo da sun.

Provavelmente sao versoes de jars, jaxb, etc. Teste rodar com java5 no cliente e servidor.

Obrigado pela ajuda Paulo !
Eu conferi aqui e nos dois, client e server, estao com Java5…
Bom, nao descobri a causa do problema, mas eu fiz um “clean” no meu ambiente, exclui as pastas temporarias do JBoss, fiz um rebuild, redeploy, e agora esta funcionando corretamente.

Obrigado pela ajuda !

Criado 11 de abril de 2008
Ultima resposta 11 de abr. de 2008
Respostas 4
Participantes 3