(JBoss WARN) EJB spec violation

6 respostas
N

Pessoal, tô com um problema no deployment de minha aplicação no JBoss.
O JBoss está exibindo as seguintes linhas:

WARN [verifier] EJB spec violation:
Bean : Funcionario
Section : 22.2
Warning : The Bean Provider must specify the fully-qualified name of the Java class that implements the enterprise bean’s business methods in the <ejb-class> element.
Info : Class not found on ‘ejb.FuncionarioBean’: Unexpected error during load of: ejb.FuncionarioBean, msg=ejb/FuncionarioBean (Unsupported major.minor version 49.0)

Ele cita <ejb-class>, Esse erro deu em todos os meus EntityBeans. Pode ser algo do descritor de instalação?
Puts, preciso fazer este deployment URGENTE?

6 Respostas

hmichel

Cara, não tenho certesa, mas este nome acentuado popde estar causando este problema, apesar de que acredito que nem compilaria. Outra causa provavel, este erro diz que o deployment descriptor deve informar o nome da classe totalmente qualificada, ou seja, com o package inteiro.

[]´s

N
Cara não acredito que seja isso, mas   o código do meu EntityBean,

Veja que ele  com o endereço do pacote completo:

<entity>

<ejb-name>Funcionario</ejb-name>

<local-home>localFuncionario.FuncionarioHome</local-home>

<local>localFuncionario.Funcionario</local>

<ejb-class>ejb.FuncionarioBean</ejb-class>

<persistence-type>Container</persistence-type>

<prim-key-class>java.lang.Integer</prim-key-class>

<reentrant>False</reentrant>

<cmp-version>2.x</cmp-version>

<abstract-schema-name>funcionario</abstract-schema-name>
&lt;cmp-field&gt;&lt;field-name&gt;codFuncionario&lt;/field-name&gt;&lt;/cmp-field&gt;
    &lt;cmp-field&gt;&lt;field-name&gt;nomFilial&lt;/field-name&gt;&lt;/cmp-field&gt;
        &lt;cmp-field&gt;&lt;field-name&gt;nomFuncionario&lt;/field-name&gt;&lt;/cmp-field&gt;
        &lt;cmp-field&gt;&lt;field-name&gt;data&lt;/field-name&gt;&lt;/cmp-field&gt;
        &lt;cmp-field&gt;&lt;field-name&gt;endereco&lt;/field-name&gt;&lt;/cmp-field&gt;
        &lt;cmp-field&gt;&lt;field-name&gt;telefone&lt;/field-name&gt;&lt;/cmp-field&gt;
        &lt;cmp-field&gt;&lt;field-name&gt;cep&lt;/field-name&gt;&lt;/cmp-field&gt;
        &lt;cmp-field&gt;&lt;field-name&gt;salario&lt;/field-name&gt;&lt;/cmp-field&gt;
    &lt;primkey-field&gt;codFuncionario&lt;/primkey-field&gt;
    
    &lt;query&gt;
	&lt;query-method&gt;
	    &lt;method-name&gt;findAll&lt;/method-name&gt;
	    &lt;method-params/&gt;
	&lt;/query-method&gt;
	&lt;ejb-ql&gt;select Object(c) from funcionario c&lt;/ejb-ql&gt;
    &lt;/query&gt;
    &lt;query&gt;            
            &lt;query-method&gt;
                &lt;method-name&gt;findBySubstring&lt;/method-name&gt;
                &lt;method-params&gt;
                    &lt;method-param&gt;int&lt;/method-param&gt;
                    &lt;method-param&gt;java.lang.String&lt;/method-param&gt;
                &lt;/method-params&gt;
            &lt;/query-method&gt;
            &lt;ejb-ql&gt;select Object(c) from funcionario c where substring(c.nomFuncionario, 1, ?1) = ?2&lt;/ejb-ql&gt;
    &lt;/query&gt;            
    &lt;query&gt;
	&lt;query-method&gt;
	    &lt;method-name&gt;findByProduto&lt;/method-name&gt;          
                &lt;method-params&gt;
                    &lt;method-param&gt;int&lt;/method-param&gt;
                &lt;/method-params&gt;
            &lt;/query-method&gt;
            &lt;ejb-ql&gt;select Object(c) from funcionario c where c.codProduto = ?1&lt;/ejb-ql&gt;
    &lt;/query&gt;  
    &lt;query&gt;
	&lt;query-method&gt;
	    &lt;method-name&gt;findByFilial&lt;/method-name&gt;
                &lt;method-params&gt;
                    &lt;method-param&gt;java.lang.String&lt;/method-param&gt;
                &lt;/method-params&gt;
            &lt;/query-method&gt;
            &lt;ejb-ql&gt;select Object(c) from funcionario c where c.nomFilial = ?1&lt;/ejb-ql&gt;
    &lt;/query&gt;
&lt;/entity&gt;
urubatan

(Unsupported major.minor version 49.0)
quer dizer que vc ta compilando os teus .class com uma VM mais nova do que a que ta sendo utilizada para rodar eles.

T

Só explicando o que o Urubatan falou, tente usar o JDK 1.4.2 em vez de usar o 5.0. Pelo que parece o seu JBoss está usando o 1.4.2 e você está usando o 5.0 para compilar suas classes, o que pode dar problemas, a menos que você especifique algo como “-source 1.4 -target 1.4” na compilação (não sei que ambiente você está usando, mas isso deve dar para configurar em algum lugar na sua IDE, no seu build.xml, no seu PATH etc.)

J

Acredito que não é problema de versão da JVM.
:smiley:

Pessoal tive o mesmo problema.
resolvi da seguinte maneira, estava faltando
uma das interfaces dentro do meu jar.

Estava com tudo declarado dentro do ejb-jar.xml
so que o meu ant não estava enviando para o
pacote a LocalHome.

Ai ele não estava conseguindo carregar o EJB.

Obs: Qual a versão do Jboss, que tu esta utilizando?

Dica: Abre dentro do %JBOSS_HOME%\server\default\deploy\o_nome_do_ear
com um descompactador e verifica se esta tudo
dentro do jar, que foi declarado no ejb-jar.xml

Jerônimo Queiroz

mister_m

jeronimoqueiroz:
Acredito que não é problema de versão da JVM.
:smiley:

Desculpe desaponta-lo, mas eh sim :slight_smile: Unsupported class version sempre eh isso. A mensagem que o JBoss emite eh porque ele nao consegue carregar a classe e a razao pela qual ele nao consegue eh essa. A classe estah corretamente indicada no xml e no jar, senao o detalhe do erro seria outro.

Criado 15 de novembro de 2004
Ultima resposta 24 de nov. de 2006
Respostas 6
Participantes 6