Mensagens enviadas por: foliveira81
Índice dos Fóruns » Perfil de foliveira81 » Mensagens enviadas por foliveira81
Autor Mensagem
Boa Tarde Colegas,
estou com um problema ao criar um open session in view filter, para resolver os problemas com lazy. porem não estou conseguindo
recuperar a transação para poder abrir e fechar.

segue abaixo como estou fazendo

import java.io.IOException;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.EntityTransaction;

import javax.persistence.Persistence;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import com.ibm.ejs.util.ThreadLocal;

public class JPASessionRequestFilter implements Filter {



private static EntityManagerFactory sf;



private static final ThreadLocal tls = new ThreadLocal();



private static final ThreadLocal tltx = new ThreadLocal();



@Override

public void destroy() {



}



@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

try {

beginTransaction();

chain.doFilter(request, response);

commitTransaction();

} catch (Throwable ex) {

rollbackTransaction();

throw new ServletException(ex);

}

}



@Override

public void init(FilterConfig filterConfig) throws ServletException {

openSession();

}



protected static synchronized

EntityManagerFactory getSessionFactory(String name) {

if (sf == null) {

sf = Persistence.createEntityManagerFactory(name);

}

return sf;

}



public static void openSession() {

EntityManager s = (EntityManager) tls.get();

if (s == null) {

s = getSessionFactory("saog-core-service").createEntityManager();

tls.set(s);

tls.get();

}

}



public static EntityManager getCurrentSession() {

return (EntityManager) tls.get();

}



public static void closeSession() {

EntityManager s = (EntityManager) tls.get();

tls.set(null);

if (s != null && s.isOpen()) s.close();

}



public static void beginTransaction() {

EntityTransaction tx = (EntityTransaction) tltx.get();

if (tx == null) {

tx = getCurrentSession().getTransaction();

tx.begin();

tltx.set(tx);

}

}



public static void commitTransaction() {

EntityTransaction tx = (EntityTransaction)tltx.get();

if (tx != null && tx.isActive()) tx.commit();

tltx.set(null);

}



public static void rollbackTransaction() {

EntityTransaction tx = (EntityTransaction)tltx.get();

tltx.set(null);

if (tx != null && tx.isActive()) tx.rollback();

}



}



porem quando uso o begin no qual ele vai pelo getCurrentSession para recuperar o getTransaction da o seguinte erro:
org.apache.openjpa.persistence.InvalidStateException: You cannot access the EntityTransaction when using managed transactions.

Att,
Oi mocinha, Vignette é um produto para desenvolvimento de portais, onde tera bugs, pages e Portlets onde vc pode customizar seu portal por usuario ou grupos de acesso, vamos dizer um conteudo web com mais funcionalidades para portal empresarial.

bjos
nossa o kra é muito esperto,o problema dele que ele deve ter sido escravo em alguma empresa ou ate mesmo na ibm por esse motivo o cara esta
retrucando todos pontos de vista, na empresa que ele trabalha deve ser o mais reclamão, não acredita em futuro, acho que ele quer montar algum bar também no futuro e esta usando TI so pelo Dinheiro no momento. incluindo deve ganhar milhoes porque nada para ele é bom..

outra problema de quem ganha menos ou maios, vai do momento certo e da hora certa ne bonitão !!!


abraços para você !!!!


Pois bem vejo que muitos estão totalmente bravos ou com birras de empresas 3 letrinhas ou com qualquer outro nome conhecido como
consultoria, Minha filosofia é um pouco diferente pois quem faz o lugar de trabalho é o profissional e não a empresa, tenho o seguinte dilema,
se não esta bom para o meu perfil eu saio mas jamais vou criticar nome das empresas, pois as vezes o problema é o lugar de trabalho(locomoção),
salário, gestor, projetos enfim.

Para profissional diferenciado no mercado só depende de cada um, aqueles que não querem pagar por um custo beneficio, raramente vai
conseguir alcançar seus objetivos, exemplo ser um Anal. Programador SR e der-repente ir para um cargo como Arquiteto JR e falar que queria
ganhar x e não y é complicado porque você esta pensando apenas em você, sendo egoísta porem não esta avaliando a oportunidade.

Conhecimento nunca é demais e para quem esta começando, não tem como não sofrer, muitos sofreram alias creio que todos "", a não ser
aqueles que familiares ou amigos íntimos protegeram na empresa, porem muitos desses as vezes não chega em lugar nenhum, fica na mesma, pois
nunca teve interesse de melhora etc.

Na vida tudo lei de causa e efeito, então quer ser um bom profissional, ganhar bem faça a causa, pois o efeito é circunstancia e
outra coisa, na área de trabalho existe n perfil, incluindo os que só reclamam, toda empresa que o cara entra o cara reclama.

cada um tem que avaliar o que é melhor para você !

abraços a todos e vamos falar de java, futuro de tecnologia, onde queremos chegar em 2009 e o que pretendemos ser em 2015.

Att.
bom dia galera !!

ninguem nunca passou por um problema parecido ???


grato
Boa Tarde a todos, estou com a seguinte duvida,

estou montando uma tabela, porem para cada linha q o dwr adicionar ele deve inserir uma outra tr que na verdade é uma imagem de uma linha.

var cellFuncs = [
function(data) { return data.cnpj; },
function(data) { return data.nome; },
function(data) { return data.aprovadas; },
function(data) { return data.reprovadas; },
function(data) { return data.total; },
function(data) { return "R$ " + data.valor; }
];

var opcoes = {
rowCreator: function(options) {
var row = document.createElement("tr");
return row;
},
cellCreator:function(options) {
var td = document.createElement("td");
if(options.cellNum == 0){
td.align = "center";

}
if(options.cellNum == 1){
td.align = "left";
}
if(options.cellNum == 2){
td.align = "center";;
}
if(options.cellNum == 3){
td.align = "center";
}
if(options.cellNum == 4){
td.align = "center";
}
if(options.cellNum == 5){
td.align = "right";
}
td.valign = "top";

return td;
}
};

montei essa estrutura. mas nao vejo como falar para ele colocar uma imagem assim que ele estiver adicionando o proximo registro.

Att
Boa Tarde a todos,
Estou com a seguinte duvida e problema rs, tenho uma aplicação que é um portal da BEA, so que a duvida é entre a camada de negocio e persistencia, Estamos fazendo que um controller, chame uma fachada que é um session bean (EJB3), que vai delegar para um service que delega para um DAO, tem como no meu DAO sem passar por referencia desde a fachada, service e dao o entitymanager e sim usar alguma anotação que faça isso direto no DAO, sei que o entitymanager precisa estar no contexto EJB por isso a duvida ??

estou perguntando isso pois a pessoa que esta fazendo a arquitetura esta com essa ideia.

vou colocar a minha opnião para saber se estou certo ou errado, se vou usar entitymanager, nao tem porque eu ter um DAO correto, poderia ter uma fabrica de ejbql, para nao deixar os sql no ejb, agora se estou usando o ejb3 so para fachada, não seria correto usar o templatedao do spring e estender no dao e pois iria ate conseguir usar criteiria nele correto ?

fico no aguardo a sujestoes !

Att
Eu estou lendo o Jboss seam e estou achando muito bom, ja tabalhei com struts 1.x e struts 2, recomento
na orderm
Jboss Seam, VRaptor ou Struts2.

veja qual é melhor para você nesse projeto, pra quem nunca mexeu com JSF perde uma semaninha ai para ver os componentes, enteder um pouco de facelets e ai aplica o Seam que é um otimo fw tenho certeza que tem bons desenpenhos.

Att
Boa tarde galera, estava vendo exemplos no seam, ja estou desenvolvendo
um mini projeto de teste, com consulta, cadastro e uma tela de master
detail, estou gostando do framework, mas estou com pequenas duvidas
que nao achei na documentacao e aqui esta sendo meu melhor guia rs !

seguinte:
1° por que na maioria dos exemplos quando se usa o ejb no seam os
bean fica como statefull e nao steless,tem um motivo ?
pq pra mim statefull, seria mais usado se tivese mexendo com um B2C
por exemplo com um carrinho de compra etc, para que ele deixa o objeto
no container eo stateless para sempre que precisar consumir um ejb,
sem precisar deixar no container, mas como o seam é um gerenciador de
objetos também talvez tenha um motivo.

2° Percebi tambem uma outra coisa, tenho um managerbean, para servi
apenas como fachada pra mim e manipular os componentes JSF como
datamodel etc, eu tenho dentro desse managerbean um datamodel que tem
uma lista de ClienteEntity que nao tem definicao de escopo, ate
coloquei conversacao para teste mas nao deu acontece o seguinte
problema, na tela de consulta eu deixo entity.nome exemplo para o kra
digitar e buscar, vamos supor que não retorne nada, ai clico no botao
novo e no edit.xhtml eu tbm uso entity.nome, ele traz o que escrevi na
tela de consulta, ai para resolver esse problema tenho que chamar um
metodo do meu manager bean para limpar os dados desse meu entity que
é um componente seam tbm, pois possui o @Name, isso é correto?

3° Como usar os skin do richfaces no componentes, pois uso o faces
coloco como header e o mesmo nao fica com a coluna azul bonitinha
igual nos demos da pagina de richfaces.

Basicamente é isso.

Att
Fernando Oliveira
Pessoal descobri era so colocar o
sql.append(" where (:codigo=0 or cliente.id =:codigo)");
agora erro do firebird, deve ser outro tratamento.

grato
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="TreinamentoEJB">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/treinamentoDatasource</jta-data-source>
<properties>
<!-- <property name="hibernate.dialect" value="org.hibernate.dialect.FirebirdDialect"/> -->
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="connection.pool_size" value="1" />
</properties>
</persistence-unit>
</persistence>
Ah galera so pra complementar
StringBuffer sql = new StringBuffer();
sql.append(" select cliente from Cliente cliente");
sql.append(" inner join cliente.listaEndereco endereco");
sql.append(" where 1=1 ");
if(dto.getCliente() != null && dto.getCliente().getId() != null){
sql.append(" and cliente.id =:codigo");
}

if(dto.getCliente() != null && dto.getCliente().getNome() != null
&& !"".equals(dto.getCliente().getNome())){
sql.append(" and cliente.nome like :nome");
}

se eu fizer dessa maneira, funciona.
porem queria uma coisa mais inteligente, pois ja usei com oracle na empresa dessa maneira abaixo:
sql.append(" where :codigo=0 or cliente.id =:codigo");
sql.append(" and :nome is null or cliente.nome =:nome");

porem com o postgre e firebird nao esta dando certo !!!
Ola Amigos, estou com seguinte problema, tentando utlizar uma query que aparentemente é simples.
Pois tenho uma query onde horas ela pode passar codigo, nome e cep, ou buscar so por nome etc..

por esse motivo faço uma validacao ex.
:param = 0 or obj.codigo =:param
ja usei para string
:param is null or obj.nome =:param, porem nao funciona para o postgre nem para firebird.

agora abaixo vou detalhar o erro:

A Query
StringBuffer sql = new StringBuffer();
sql.append(" select cliente from Cliente cliente");
sql.append(" inner join cliente.listaEndereco endereco");
sql.append(" where :codigo = 0 or cliente.id =:codigo ");
sql.append(" and (:nome ='' or cliente.nome like :nome)");
// sql.append(" and (:cep is null or endereco.cep =:cep) ");
Query query = em.createQuery(sql.toString());
if(dto.getCliente() != null && dto.getCliente().getId() != null){
query.setParameter("codigo",dto.getCliente().getId().intValue());
}else{
query.setParameter("codigo",new Integer(0));
}
if(dto.getCliente() != null && dto.getCliente().getNome() != null
&& !"".equals(dto.getCliente().getNome())){
query.setParameter("nome","%" + dto.getCliente().getNome().toString() + "%");
}else{
query.setParameter("nome",new String(""));
}



FireBird
select
cliente0_.id_cliente as id1_0_,
cliente0_.nome as nome0_,
cliente0_.id_tipo_cliente as id3_0_
from
CLIENTE cliente0_
inner join
CLIENTE_ENDERECO listaender1_
on cliente0_.id_cliente=listaender1_.id_cliente
where
?=0
or cliente0_.id_cliente=?
and (
?=''
or cliente0_.nome like ?
)



ERRO
could not bind value '%t%' to parameter: 3; Data truncation


Postgre
Não da erro porem ele traz o registro que contem na tabela e o mesmo nao possui ?%t%?

Alguem imagina o que pode ser?

Uso Jboss seam + EJB3

Att
amigos, de nao conseguir gerar os componentes eu descobri, qdo deixa o jboss-seam.jar no path do ear e também no lib de web-inf da app web o infeliz gera os componentes apenas do projeto web, entao fiz o seguinte removi do projeto web e deixei apenas no ear, e logo vi no console do jboss ele gerando os componentes, agora estou com outro problema queé de viewhandle, como nao mexi a fundo e deve ser problema de biblioteca, qualquer coisa abro um novo post.


grato pela ajuda de todos !!!


Att
Bom dia Galera ainda nao consegui resolver meu problema,
apesar de chegar proximo, mas nao consigo ver solucao para ele.

vi que nao esta sendo gerado para as classes de ejb. oq é gerado para classe da camada web.
no console do jboss quando sobe o servidor ele acha o componente action
21:01:20,015 INFO [Component] Component: usuarioAction, scope: EVENT, type: JAVA_BEAN, class: br.com.treinamento.usuario.
action.UsuarioAction
esse usuarioAction é meu @Name, porem nao vejo o mesmo processo para os de ejb:

agora para os ejb ele so gera
21:01:00,062 INFO [Ejb3Configuration] found EJB3 Entity bean: br.com.treinamento.domain.Cliente
21:01:00,062 INFO [Ejb3Configuration] found EJB3 Entity bean: br.com.treinamento.domain.ClienteEndereco
21:01:00,062 INFO [Ejb3Configuration] found EJB3 Entity bean: br.com.treinamento.domain.TipoCliente
21:01:00,062 INFO [Ejb3Configuration] found EJB3 Entity bean: br.com.treinamento.domain.Usuario
21:01:00,156 INFO [Configuration] Reading mappings from resource : META-INF/orm.xml
21:01:00,343 INFO [Ejb3Configuration] [PersistenceUnit: TreinamentoEJB] META-INF/orm.xml found
21:01:00,562 INFO [AnnotationBinder] Binding entity from annotated class: br.com.treinamento.domain.Cliente
21:01:00,687 INFO [EntityBinder] Bind entity br.com.treinamento.domain.Cliente on table CLIENTE
21:01:00,984 INFO [AnnotationBinder] Binding entity from annotated class: br.com.treinamento.domain.ClienteEndereco
21:01:01,000 INFO [EntityBinder] Bind entity br.com.treinamento.domain.ClienteEndereco on table CLIENTE_ENDERECO
21:01:01,015 INFO [AnnotationBinder] Binding entity from annotated class: br.com.treinamento.domain.TipoCliente
21:01:01,015 INFO [EntityBinder] Bind entity br.com.treinamento.domain.TipoCliente on table TIPO_CLIENTE
21:01:01,015 INFO [AnnotationBinder] Binding entity from annotated class: br.com.treinamento.domain.Usuario
21:01:01,015 INFO [EntityBinder] Bind entity br.com.treinamento.domain.Usuario on table USUARIO
21:01:01,265 INFO [CollectionBinder] Mapping collection: br.com.treinamento.domain.Cliente.listaEndereco -> CLIENTE_ENDERECO
21:01:01,421 INFO [ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
21:01:01,437 INFO [InjectedDataSourceConnectionProvider] Using provided datasource
21:01:01,765 INFO [SettingsFactory] RDBMS: PostgreSQL, version: 8.2.7
21:01:01,765 INFO [SettingsFactory] JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.2 JDBC3 with SSL (build 506)
21:01:01,812 INFO [Dialect] Using dialect: org.hibernate.dialect.PostgreSQLDialect
21:01:01,843 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
21:01:01,859 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
21:01:01,859 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
21:01:01,859 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
21:01:01,859 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
21:01:01,859 INFO [SettingsFactory] JDBC batch size: 15
21:01:01,859 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
21:01:01,859 INFO [SettingsFactory] Scrollable result sets: enabled
21:01:01,859 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
21:01:01,859 INFO [SettingsFactory] Connection release mode: auto
21:01:01,859 INFO [SettingsFactory] Default batch fetch size: 1
21:01:01,859 INFO [SettingsFactory] Generate SQL with comments: disabled
21:01:01,859 INFO [SettingsFactory] Order SQL updates by primary key: disabled
21:01:01,859 INFO [SettingsFactory] Order SQL inserts for batching: disabled
21:01:01,859 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
21:01:01,875 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
21:01:01,875 INFO [SettingsFactory] Query language substitutions: {}
21:01:01,875 INFO [SettingsFactory] JPA-QL strict compliance: enabled
21:01:01,875 INFO [SettingsFactory] Second-level cache: enabled
21:01:01,875 INFO [SettingsFactory] Query cache: disabled
21:01:01,875 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
21:01:01,890 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
21:01:01,890 INFO [SettingsFactory] Cache region prefix: TreinamentoEAR_ear,TreinamentoEJB_jar,TreinamentoEJB
21:01:01,890 INFO [SettingsFactory] Structured second-level cache entries: disabled
21:01:01,921 INFO [SettingsFactory] Echoing all SQL to stdout
21:01:01,921 INFO [SettingsFactory] Statistics: disabled

porem no meu jar do ejb ja possui o seam.properties.
alguem pde me ajudar ??
 
Índice dos Fóruns » Perfil de foliveira81 » Mensagens enviadas por foliveira81
Ir para:   
Powered by JForum 2.1.8 © JForum Team