Erro de invocação de EJB

8 respostas
M

opa,

Estou precisando de uma ajudinha, eu criei um ejb teste “Adiciona” para fazer alguns teste mas estou tendo alguns probleminhas com jndi.

  • Inteface local
package com.marcossousa.ejb;

import java.rmi.RemoteException;

import javax.ejb.CreateException;
import javax.ejb.EJBHome;


public interface AdicionaLocal extends EJBHome
{
	Adiciona create() throws RemoteException, CreateException;
}
  • Objeto ejb
package com.marcossousa.ejb;

import java.rmi.RemoteException;

import javax.ejb.EJBObject;

public interface Adiciona extends EJBObject {
	public int adiciona( int a, int b ) throws RemoteException;
}
  • Bean
package com.marcossousa.ejb;

import java.rmi.RemoteException;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

public  class BeanAdiciona implements SessionBean 
{

	public int adiciona( int a, int b ) throws RemoteException
	{
		System.out.println("direto do bean");
		return ( a + b );
	}
	public void setSessionContext(SessionContext arg0) 
		throws EJBException, RemoteException {
	}

	public void ejbRemove() throws EJBException, RemoteException {
	}

	public void ejbActivate() throws EJBException, RemoteException {
	}

	public void ejbPassivate() throws EJBException, RemoteException {		
	}
	
	public void ejbCreate(){
	}
}

e por fim o conteúdo do ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
 "http://java.sun.com/dtd/ejb-jar_2_0.dtd"&gt;
&lt;ejb-jar&gt;
  &lt;description&gt;Minha primeira aplicação ejb&lt;/description&gt;
  &lt;display-name&gt;Aplicação Adiciona&lt;/display-name&gt;
  &lt;enterprise-beans&gt;
    &lt;session&gt;
      &lt;ejb-name&gt;Adiciona&lt;/ejb-name&gt;
      &lt;home&gt;com.marcossousa.ejb.AdicionaLocal&lt;/home&gt;
      &lt;remote&gt;com.marcossousa.ejb.Adiciona&lt;/remote&gt;
      &lt;ejb-class&gt;com.marcossousa.ejb.BeanAdiciona&lt;/ejb-class&gt;
      &lt;session-type&gt;Stateless&lt;/session-type&gt;
      &lt;transaction-type&gt;Bean&lt;/transaction-type&gt;
    &lt;/session&gt;
  &lt;/enterprise-beans&gt;
&lt;/ejb-jar&gt;

Mensagens de compilação expressas pelo jboss:

22:33:51,269 INFO  [EjbModule] Deploying Adiciona
22:33:51,860 INFO  [EJBDeployer] Deployed: file:/C:/jboss-4.0.2/jboss-4.0.2/se
er/default/deploy/Adiciona.jar
22:33:52,331 INFO  [TomcatDeployer] deploy, ctxPath=/AdicionaCliente, warUrl=fil
e:/C:/jboss-4.0.2/jboss-4.0.2/server/default/tmp/deploy/tmp18603AdicionaCliente-
exp.war/

Mensagem erro:

22:54:35,358 INFO  [STDOUT] java.rmi.ServerException: EJBException:; nested exption is:
        javax.ejb.EJBException: Invalid invocation, check your deployment packing,
method=public abstract com.marcossousa.ejb.Adiciona com.marcossousa.ejb.A
cionaLocal.create() throws java.rmi.RemoteException,javax.ejb.CreateException

O que pode estar errado???

8 Respostas

P
abstract com.marcossousa.ejb.Adiciona com.marcossousa.ejb.A
 cionaLocal.create() throws java.rmi.RemoteException,javax.ejb.CreateException

Sua interface home não deve declarar as exceções indicadas, ou seja, fica só o create().

M

psevestre,

mas o Jboss exige que seram declaradas essas excessões???

P

Viajei…

Pode declarar a exceção ( Com “c” cedilha !!!, sofro demais ver isto escrito de outra forma ;^)).

O invoke exception pode ocorrer por várias razões, mande o stack trace completo e quem sabe aparece algo mais…

Ajuda tb. se vc. mandar o trecho de código que faz a chamada, a versão do JBoss, JVM, OS, propriedades, contexto de execução (ex: cliente/servidor, apl. web, etc).

Ajude-nos a te ajudar !

G

Não sei se é isto, mas seria legal ficar atento: você sempre fez o deploy disso com o JBoss 4.0.2?

Um programador indisciplinado (brincadeira :lol: ) aqui na empresa (onde todos usamos o 4.0.1) baixou e, do nada, começou a ter o mesmo tipo de exceção.

Eu procurei na web e achei o seguinte (até botei no wiki interno, talvez seja útil):

-> Pessoas que tiveram o mesmo problema que você :wink:
http://www.jboss.com/?module=bb&op=viewtopic&t=64165

Detalhe: ainda não fui atrás de solução…

[]s

G

Sobre o problema que postei acima, encontrei a solução:

Basta editar o arquivo jbossweb-tomcat55.sar/META-INF/jboss-service.xml, que fica dentro do diretório deploy do JBoss, e editar os atributos abaixo:

<attribute name="Java2ClassLoadingCompliance">true</attribute> <attribute name="UseJBossWebLoader">true</attribute>

Seguem os links de apoio: :wink:

-> pessoal do JBoss resolvendo o problema
http://jboss.com/index.html?module=bb&op=viewtopic&t=63659

-> solução um pouco mais detalhada
http://jira.jboss.com/jira/browse/JBAS-1691#action_12317322

T

psevestre:
Pode declarar a exceção ( Com “c” cedilha !!!, sofro demais ver isto escrito de outra forma ;^)).

Por algum motivo as pessoas escrevem “exception” corretamente mas não escrevem “exceção” corretamente.
Às vezes eu fico enchendo o saco das pessoas (por saberem como se escrevem as palavras em inglês mas não em português) e digo que existe uma regra do ção. Se terminar em “-sion” deve ser “são”. Se for outra coisa deve ser “ção”.

Inglês -> Português

ption, tion -> ção (exception -> exceção; assertion -> asserção; sensation -> sensação)

ction -> ção ou cção (section -> seção ou secção; suction -> sucção)

nction -> nção (function -> função; junction -> junção)

ssion -> ssão (session -> sessão)

sion -> são (decision -> decisão)
P

Acho que o motivo é simples.

O português normalmente não costuma ser o forte da turma de informática, e, infelizmente, não é cobrado nos cursos superiores de exatas.

Quem desenvolve em Java ou outras linguagens que possuem o conceito de exceção acaba vendo diariamente a versão em inglês do termo escrita na cara, e aprende a grafia correta. Já para o português…

G

hehehe
E para vocês terem uma idéia de como a coisa é, nossa gerente aqui já disse que a maioria dos programadores deveria colocar inglês básico e português intermediário no currículo… :mrgreen:

É cruel, mesmo… e bem ruim de ver isso todo dia nos vários fóruns… e me lembro de ter lido que professores de português estavam felizes pq os jovens estavam, com a Internet, escrevendo mais… só fala isso quem nunca viu uma figura dessas digitando num msn da vida… um “orror” (sic)
:XD:

Mas voltemos ao assunto principal, senão o tópico acaba indo para longe… :wink:

Por sinal, ninguém mais enfrentou o problema acima? Hoje resolvi por aqui, mas vi que existem vários tópicos abertos “nos fóruns do mundo” sobre isso… alguém que use o JBoss 4.0.2 por aí??

Abraços

PS: tem um estagiário aqui que vive falando “indiota” (escrevendo nunca vi, mas pela ênfase, deve ser a mesma coisa)… hehehe já cansamos de xingar, mas não tem jeito… :shock: :lol: :shock: :lol:

Criado 31 de maio de 2005
Ultima resposta 3 de jun. de 2005
Respostas 8
Participantes 4