segunda-feira, 21 de março de 2011

Unable to find XML mapping file in classpath

Ao usar a tag <mapping-file> no meu persistence.xml tive o seguinte erro quando iniciei o JBoss:

Unable to find XML mapping file in classpath: br.com.localhost8080.Teste2.hbm.xml

O erro era que a separação dos pacotes deve ser feita com barra e não ponto:

Assim:
<mapping-file>br/com/localhost8080/Teste2.hbm.xml</mapping-file>
Não assim:
<mapping-file>br.com.localhost8080.Teste2.hbm.xml</mapping-file>

Vaaleu!
Adriano Schmidt

cvc-complex-type.2.4.a: Invalid content was found starting with element 'mapping-file'

Olá,

Ao utilizar a tag <mapping-file> no persistence.xml eu tive o seguinte erro:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'mapping-file'. One of '{"http://
java.sun.com/xml/ns/persistence":class, "http://java.sun.com/xml/ns/persistence":exclude-unlisted-classes,
"http://java.sun.com/xml/ns/persistence":properties}' is expected.


O problema é que no meu persistence.xml eu tinha uma tag <class> antes da tag <mapping-file>. Para resolver só joguei a tag class pra baixo da tag <mapping-file>. Assim:

<mapping-file>br/com/localhost8080/Teste2.hbm.xml</mapping-file>
<class>br.com.localhost8080.Teste1</class>

Caso você use a tag <jar-file> ela também deve estar depois da tag <mapping-file>

Vaaleu!

sexta-feira, 18 de março de 2011

JBoss 6 Final eclipse

Olá, utilizando o JBoss 6 M5 no eclipse tudo ocorria bem, quando fui migrar para o JBoss 6 Final tive o seguinte erro:

Error installing to Instantiated: name=PostEjbJarMetadataDeployer state=Described: java.lang.NoSuchMethodError: javax.annotation.Resource.lookup()Ljava/lang/String;

Para resolver bastou adicionar nos VM arguments o seguinte:

-Djava.endorsed.dirs="C:\jboss-6.0.0-Final\lib\endorsed"

Troque C:\jboss-6.0.0-Final pela pasta do seu JBoss.

Fontes:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=250643
http://community.jboss.org/message/587813?tstart=60

Vaaleu!

quinta-feira, 17 de março de 2011

p:tabView volta primeira aba

Olá,

O TabView do primefaces volta para a primeira aba em algumas situacoes (quando ele está dentro de um <a4j:outputPanel ajaxRendered="true"> e dentro de um tab tem um rich:datatable e um botão é pressionado no datascroller (nossa, é difícil, mas aconteceu comigo)).

Para resolver isso, simplesmente tire o tabView do outputPanel.

Caso isso não possa ser feito, na troca de aba deve ser setado o 'activeIndex' do tabView. Da seguinte forma:

No tabView deve ser adicionado o tabChangeListener e o activeIndex. E as tabs devem ter seu id setado:

<p:tabView tabChangeListener="#{myBean.onTabChange}" activeIndex="#{myBean.currentTab}">
<p:tab title="primeria aba" id="tab0">
</tab>

<p:tab title="segunda aba" id="tab1">
</tab>

<p:tab title="terceira aba" id="tab2">
</tab>
</p:tabView>


No Bean adicione isso:

private int currentTab = 0;

public int getCurrentTab() {
return currentTab;
}

public void setCurrentTab(int currentTab) {
this.currentTab = currentTab;
}

public void onTabChange(org.primefaces.event.TabChangeEvent event) {
String id = event.getTab().getId();
if (id.equals("tab0")) {
this.setCurrentTab(0);
} else if (id.equals("tab1")) {
this.setCurrentTab(1);
} else if (id.equals("tab2")) {
this.setCurrentTab(2);
}
}


Acredito que isso não funciona no primefaces 2.1.. aqui no 2.2.1 funcionou..

É isso, vaaleu. Abraço.

sexta-feira, 11 de março de 2011

ORA-01452: cannot CREATE UNIQUE INDEX

Olá,

Fui criar um índice único no oracle:

CREATE UNIQUE INDEX nome_do_indice ON nome_da_tabela (coluna1, coluna2, coluna3);

e aconteceu o seguinte erro:

Error: ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found

Isso aconteceu pois na tabela que fui inserir o índice já haviam registros que violavam esse índice, por isso não permitiu criar..

Para resolver removi os registros que violavam o índice e deu tudo certo.

Mais detalhes sobre o erro: http://ora-01452.ora-code.com/
Mais detalhes sobre índices no oracle: http://www.techonthenet.com/oracle/indexes.php

Vaaleu!
Adriano Schmidt.

terça-feira, 8 de março de 2011

erro converter jsf

Olá,

Ao criar um converter para utilizar na minha aplicação JSF, tive um problema quando defino ele com o forClass e value (converter-for-class e converter-id no faces-config.xml) simultaneamente.

Apenas um dos dois é permitido, os dois juntos não! Se precisa disso terá que criar duas classes diferentes.

Veja como não pode ser feito:

<converter>
<converter-id>Localhost8080Converter</converter-id>
<converter-for-class>java.lang.String</converter-for-class>
<converter-class>br.com.localhost8080.Localhost8080Converter</converter-class>
</converter>

@FacesConverter(forClass = String.class, value="Localhost8080Converter")
public class Localhost8080Converter implements Converter { ... }

É isso aí. Abraços.
Adriano Schmidt

quinta-feira, 3 de março de 2011

join type not supported by OracleJoinFragment

Hoje ao usar um right join num banco oracle tive o seguinte erro:

join type not supported by OracleJoinFragment (use Oracle9iDialect/Oracle10gDialect)

Para resolver tive que trocar o hibernate.dialect do persistence.xml de:
org.hibernate.dialect.OracleDialect
para:
org.hibernate.dialect.Oracle10gDialect

Pronto, resolvido.
Adriano Schmidt