(JBoss WARN) EJB spec violation

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?

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

Cara não acredito que seja isso, mas tá aí o código do meu EntityBean,
Veja que ele tá 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;

(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.

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.)

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

[quote=jeronimoqueiroz]Acredito que não é problema de versão da JVM.
:smiley:
[/quote]

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.