| Autor |
Mensagem |
|
|
|
Ainda nao consegui sair desse erro, alguem tem alguma solucao ? Ja tentamos de tudo aqui na empresa, o padrao de annotations esta conforme a especificacao ejb3... help please !
|
 |
|
|
|
esta no build path. Estou usando eclipse. Preciso setar no classpath de variavel de ambiente para que o jboss possa enxerga-la ?
|
 |
|
|
Eai pessoal blz ?
Tentei aqui implementar meu primeiro EJB, e estou tendo o seguinte problema: quando eu tento chamar qualquer classe de meu EJB, tenho uma excessao ( erro no caso ) do tipo java.lang.NoClassDefFoundError.
Alguem poderia me dizer se é necessaria alguma configuracao especial para que meu EJB possa enxergar outras classes ?
Excessao:
15:32:24,562 ERROR [LogInterceptor] Unexpected Error in method: public abstract double[] tutorial.interfaces.Fibo.compute(int) throws java.rmi.RemoteException
java.lang.NoClassDefFoundError: tutorial/dao/hibernate/HibernateDepartamentoDAO
at tutorial.ejb.FiboBean.compute(FiboBean.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
...
- Metodo na classe action que instacia a home:
public ActionForward fibo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
Context context = new InitialContext();
Object ref = context.lookup("ejb/Fibo");
home = (FiboHome) PortableRemoteObject.narrow(ref, FiboHome.class);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("Fibonaci Computation");
out.println("</title></head>");
out.println("<body>");
out.println("<h1>");
out.println("Fibonaci Computation");
out.println("</h1>");
try {
Fibo bean = home.create();
int limit = 0;
String value = request.getParameter("limit");
double[] result = bean.compute(value);
bean.remove();
out.println("<p>");
out.print("The ");
out.print(limit);
out.print(" first Fibonacci numbers ");
for (int i = 0; i < result.length; i++) {
out.println("<br>");
out.println(i);
out.println(" : ");
out.println(result[i]);
}
out.println("</p>");
} catch (Exception e) {
out.println(e.getMessage());
e.printStackTrace(out);
} finally {
out.println("</body></html>");
out.close();
}
return null;
}
-Interface FiboHome
public interface FiboHome
extends javax.ejb.EJBHome
{
public static final String COMP_NAME="java:comp/env/ejb/Fibo";
public static final String JNDI_NAME="ejb/Fibo";
public tutorial.interfaces.Fibo create()
throws javax.ejb.CreateException,java.rmi.RemoteException;
}
-Interface remota
public interface Fibo
extends javax.ejb.EJBObject
{
/**
* Business method
*/
public double[] compute( int number )
throws java.rmi.RemoteException;
}
-Bean
/**
* @ejb.bean name="Fibo"
* display-name="Name for Fibo"
* description="Description for Fibo"
* jndi-name="ejb/Fibo"
* type="Stateless"
* view-type="remote"
*/
public class FiboBean implements SessionBean {
public FiboBean() {
super();
// TODO Auto-generated constructor stub
}
public void setSessionContext(SessionContext ctx) throws EJBException,
RemoteException {
// TODO Auto-generated method stub
}
public void ejbRemove() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
public void ejbActivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
public void ejbPassivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
/**
* Default create method
*
* @throws CreateException
* @ejb.create-method
*/
public void ejbCreate() throws CreateException {
// TODO Auto-generated method stub
}
/**
* Business method
* @ejb.interface-method view-type = "remote"
*/
public double[] compute(int number) {
if (number < 0) {
throw new EJBException("Argument should be positive");
}
HibernateDepartamentoDAO h = new HibernateDepartamentoDAO();
h.insert(new Departamento());
double[] suite = new double[number + 1];
suite[0] = 0;
if (number == 0) {
return suite;
}
suite[1] = 1;
for (int i = 2; i <= number; i++) {
suite[i] = suite[i - 1] + suite[i - 2];
}
return suite;
}
}
Ou seja, o erro da nas linhas
HibernateDepartamentoDAO h = new HibernateDepartamentoDAO();
h.insert(new Departamento());
|
 |
|
|
Bom dia Webmano. Bom vamos la:
1- Ejb nao é um um framework, é na verdade parte de um framework, é um dos principais componentes da plataforma J2EE.
2-Existem varias maneiras de vc chamar um EJB, uma delas poderia ser atraves de um Servlet, outra de um JSP, ou melhor ainda, em uma Action do struts. Um EJB pode ser invocado de qualquer lugar, desde que esteja contido em um Container, ex JBOSS.
3-Sim, EJBs utilizam um container como o JBOSS, Spring é um framework assim como struts, mas nao confunda Container com Framework, Container é o cara que fornece os servicos para as aplicacoes e fazem elas funcionarem, e o Framework é o que organiza suas aplicacoes e utiliza um certa logica para o funcionamento.
4-Muitas pessoas odeiam EJBs, acho que pelo fato de nao conhecerem os ejbs direito.
5-Ha muitas vantagens e desvantagens de se utilizar EJBs, dentre elas controle de transacoes, pool de conexoes e tudo mais... entao, cabe a cada um verificar se compensa ou nao seu uso na sua aplicacao.
Espero ter ajudado, abraco !
|
 |
|
|
|
to com o mesmo problema...
|
 |
|
|
|
Ok desculpe
|
 |
|
|
faelcavalcanti vc tem msn velho ? Me add ai, vamo troca umas ideia sobre SCJWD...
Quanto ao erro, amigo, eu tb vi esse erro e perdi boa parte do tempo nessa questao, mas realmente esta errada...
|
 |
|
|
|
vc mapeou suas classes com o padrao xdoclet para que o hibernate possa encherga-las como entidades persistivas ? Ou, utilizando hibernate 3, usou anotations em suas entidades referenciando as tabelas, colunas e tudo mais ? De mais detalhes de seu erro, talvez fazendo isso vc mesmo ja descobre o problema.
|
 |
|
|
Amigo, me contacte pelo msn e te passo os Whizlabs. Quanto ao idioma da prova, se o seu ingles é muito basico, entao vc nao tem alternativa. Mas acho que pro mercado, o ingles é o mínimo que vc deve ter. Um dos motivos pelos quais nao fui trabalhar na IBM mes passado, foi pq meu ingles nao era nivel avancado, como eles pediram, apesar de ter passado no exame de selecao. Entao, ao alto, e avante !
|
 |
|
|
amigo, meu score foi 70%. Fiz uma revisao ao final da prova, bem rapida, vi que tinha questoes q eu nem tinha respondido, vale a pena a revisao, talvez sem ela eu nao tinha passado... vi uns erros e corrigi rapidamente
|
 |
|
|
Entao pessoal, acabei de tirar a SCJP 5, como relatei ai no forum, e agora gostaria de saber qual seria uma boa opcao, para aproveitar o ritmo e os conhecimentos adquiridos com essa. O que vcs sugerem ?
|
 |
|
|
|
jeffersonsilvadeam fiz um relato completo sobre a prova, de uma olhada ... abraco !
|
 |
|
|
Antes de mais nada gostaria de me desculpar pela demora sobre o relato da prova. O tópico q criei "Passe SCJP 5!!!" foi na empresa onde eu fiz a prova em Ribeirão Preto e não tinha tido tempo ainda para dizer como foi a prova. Mas então vamos lá !
Inspiração para realizar o exame: na verdade eu havia acabado de sair de uma empresa prestadora de serviços aqui em uberlândia, e como fiquei um tempo parado, resolvei que seria ótima hora para estudar e tirar a certificação. Por isso procurei saber tudo sobre a certificação e encontrei aqui no fórum mesmo, quase tudo...
Material utilizado: bom, eu não tinha nada de material para estudar para a prova, então depois de muito ler aqui no fórum, vi que o pessoal estava adotando o livro da K.Sierra. Vi também que um grande amigo nosso aqui do fórum ( agentelu ) tinha o livro em pdf e se depôs a enviá-lo a quem precisasse. Foi então que pedi que me enviasse por e-mail e ele me enviou ( obrigado amigo ! ). O livro é ótimo, em inglês, tem alguns erros de sintaxe, mas são evidentes que quem estava digitando não era o autor (...). Vi apenas 1 erro em um exercício, erro de conceito mesmo, que no meu eclipse não compilava nem a pau, dai vi que era erro mesmo. Recomendo esse livro, o qual li 2x, fiz todos os exercícios 2x, fiz resumo em .doc. Recomendo a quem for prestar o exame, fazer o mesmo. Recomendo também Whizlabs 1.4 e 1.5 pra estudo, mocks na internet fiz muitos e muitos, e muitos testes no eclipse. Criei um projeto no eclipse SCJP e quando vi já tinha mais de 100 classes, de A à Z, tudo pra teste. Acredite, pouco do que cai na prova vc vai precisar de conceito, por isso, TESTE MUITO !!!
Idioma da prova: fiz a prova em inglês. Não tive duvida quando a isso, meu inglês é bom, mas o inglês da prova é simples, pode ser que das 72 questões, o inglês tenha me atrapalhado em 1 ou no max 2 ( pode ser ... ). Recomendo a prova em Inglês, pois mesmo se vc passar na prova em português, estará se safando dessa, mas o mercado vai lhe exigir conhecimento do inglês, e domínio da língua na profissão.
Minha experiência com a prova: viajei para Ribeirão no mesmo dia da prova, marquei no site da prometric para uma terca a tarde. Cheguei lá no local e me apresentei 2h antes da prova, e ainda chegou na hora da prova, deu problema lá no sistema pra iniciar a prova, o que levou 2h pra resolver... imagina vc 2h ansioso... já fui fazer a prova praticamente estressado ! O cara falando diretamente nos EUA pra resolve lá. Tinha uma maquininha de suco lá, eu quase detonei ela inteira.... na prova achei bom q tinha um puta de um ar condicionado, eu regulava a temperatura, pudi ir ao banheiro sempre que queria e tomar água de boa... mas o tempo corria é claro... resumindo, não foi boa minha experiência com a prova...
Como é a prova: a prova é no estilo Whizlabs ( citado acima ). Peguei um monitor embaçado, mas deu pra fazer. Tem um relógio do lado direito correndo o tempo quando vc inicia a prova. Alias, antes de iniciar tem um questionário de um monte de pergunta de como eh seu conhecimento em Java, não pensei 2x, como já tinha lido aqui no fórum, sou um idiota NEXT, sou um idiota NEXT, ....... mas o tempo da prova mesmo só começa a contar quando você responde todas essas perguntas. As questões drag and drop vc tem que apertar um botão lá pra exibi-las , mas de boa, qualquer idiota saberia lidar com o layout da prova em si. Detalhe, a prova fala quantas questões vc deve responder, ex: choose two...
Conteúdo !!! galera, estudem !!! A prova é direta e objetiva, não tem enrolacao, ou sabe ou se ferra. 100 % pega, por isso , saiba , não vá para a prova com duvida. Lembro que na noite anterior eu estava em duvida em == para tipos primitivos, revi tudo, e só dormi quando tava sabendo tudo. Não da outra, cai mesmo !
1-Threads: foi meu menor score, só 37%, putz, achei isso muito foda, pois eu fui muito confiante. Questões sobre log, métodos syncronized, StringBuilder e StringBuffer , tudo ! Wait(), notify(), yeld(), notifyAll(), saiba tudo sobre eles, onde podem atuar, quais excessoes lançam, comportamento, sleep(tempo) , tudo !!!
2-IO : lembro de algumas questões, uma que perguntava sobre um objeto1 que tinha um objeto2, e tinha um código que sincronizava o objeto1 e perguntava se o objeto2 era sincronizado e tal....
Saiba tudo de DateFormat, Date, NumberFormat, Calendar... os pacotes, os métodos ( caiu parse() ), a maneira de criar Locale, etc... caiu tudo isso...
Caiu também um procedimento para ler arquivo e escrever, ai tinha os drag and drop. Tinha uma questão que tinha um enunciado grande, mas era basicamente uma lista de strings, em que vc através de um laço e um método, testaria se o diretório existe. Tinham muitas alternativas, meu tempo estava acabando e me compliquei nessa...
3-Garbage Collection: lembro de 2 questões apenas, saiba tudo de GC, eles pegam pesado, como é q um objeto fica "available ???", quando ...
4-Flow Controll: achei fácil as questões, basicamente for, switch, do while, enfim, incrementando variáveis e tal, pedia qual o valor das variáveis essas coisas, meu score foi quase 100%. Fiquem atentos aos pegas tipo, tentar dar um break em um label do lado de um if ( lembre-se que só podemos dar nome aos lacos ).
5-Collections: muitas questões de collections, saiba o comportamento de cada uma, pq cai drag and drop perguntando as características e vc tem que escolher a melhor collection... lembro de uma que pedia como vc ordenava um map, então tinha varias opções, lembrando que a melhor delas seria dar um putAll num TreeMap...
6-Generics: caiu uma questão sobre uma classe que tinha o tipo geral T,
class GenericsGeneral<T extends Shape> {
T x;
T y;
public <T> void metodo1(){ System.out.println("metodo1"); }
public <T> void recebeLista(List<T> lista){
//doSomething()}
}
}
algo assim, e dava varias alternativas pra ver qual a sintaxe correta dessa classe, mas as opções eram bem fáceis de notar os erros....
Teve uma questão adicionando um objeto numa lista , só que a lista era do tipo List<? extends Car> , ou seja, vc não pode adicionar nada nessa lista, tipo lista.add(new Object());, a pergunta era o que acontecia, se compilava, se da erro em runtime, se exibia um resultado ou outro, lembrando que nem compila isso, pois Generics só existe em tempo de compilação.
7- Polimorfismo, covariant return ... : varias questões envolvendo conceitos em geral...
8- InnerClasses: caíram umas 5 questões, todos os tipos de innerClasses, questões perguntando output, e outras de conceitos, modificadores de acesso, enfim, saiba tudo !!!
9-Modificadores de acesso: muita questões, tipo uma questão tinha 8 alternativas, choose five no enunciado, e tinha 8 frases pra vc avaliar se era certo ou errado. Atenção no protected, é o que mais cobrou eu acho... qual é mais restritivo, qual é menos...
10- Exceptions : saiba as principais checked e non checked ( Runtime exceptions ) pois eles cobram seu conhecimento sobre isso. Saiba que IllegalArgumentException é super classe de NumberFormatException, esse tipo de coisa. Caiu uma em que havia um código normal, que tinha try catch , só que a ordem das excessoes estava errada ( lembre-se , devemos primeiro pegar as menores )..
O resto não me lembro muito bem, mas caíram duas de Comparator e Comparable, System.out.format("%b", 5). Ops! Você não disse o método printf, dá no mesmo. Mas o mais interessante é que a expressão %b, retornará true a qualquer valor não nulo !!! Li isso aqui no fórum, que nosso amigo "faelcavalcanti" escreveu e matei na prova...
Caiu tb como compilar, como rodar classes, utilizando -cp , -Da=b, pegando no main com getProperties() , arquivos dentro de jars, como executa-los e tudo mais... tem umas historinhas e vc escolhe a melhor opção...
Enfim, prova difícil, tempo curto eu achei, sem contar que nem toda cidade tem a prova então vc já chega cansado de viagem e tudo mais... o resultado sai na hora, e vc ou chora ou pula de alegria igual vestibular.... lembro que sai já fui direto pra conhecer a cidade com um amigo pra depois pega o busao pra Uberlândia de volta...
Fiz um resumo do livro, recomendo que todos façam, estude muito antes de fazer, não vá com duvida, vc iria se dar mal.
<<EDITADO PELA MODERACAO: PROIBIDO DIVULGACAO DE PIRATARIA NO FORUM>>
O resultado da certificação com certeza é muito gratificante, seus colegas de trabalho te respeitam mais, seu chefe mesmo, sabe que vc domina o JAVA ( pode ter certeza, quem tira o certificado é pq sabe mesmo, a prova é totalmente objetiva como já citei acima ), mesmo 60% o cara pode dizer que saca muito ! E já to com vontade de partir pros próximos certificados, vc empolga, e quer sempre mais!
Espero ter ajudado quem tiver alguma duvida estou à disposição, MSN muldon2@hotmail.com. Se eu não responder logo, com certeza estou ocupado aqui na empresa. Enfim, boa sorte a todos, e tenham em mente o seguinte: testem bastante, só disso que vc vai lembrar na hora da prova!
|
 |
|
|
Passei galera, pqp, foda pra caralho a prova. Estou aqui ainda na empresa que aplicou a prova em Ribeirao Preto, a "Center Cursos Informatica e Idiomas e profissionalizantes".
Achei a prova muito dificil, o tempo é bem curto , bem do tipo, 2.5 minutos por questao, mas tive um tempinho pra revisar tudo.
Como é de costume aqui no forum, vou comentar mais sobre a prova assim q voltar a Uberlandia, onde eu moro ! Vou aproveitar
que muitas questoes da prova estao frescas na mente ainda e tentar
ajudar a vcs q estao lendo esse forum e querem atingir tb esse objetivo,
que é muito gratificante !
Agradeco aos membros desse forum que ja fizeram a prova e deram sua contribuicao para esta conquista ! Farei o mesmo !
Amanha comento sobre a prova. Abraco a todos !
|
 |
|
|
Eai amigo blz ?
Olha , seguinte, quando se trata de Threads, nada podemos garantir sobre o tempo ! ( referencia do Livro da Katty Sierra ). Ou seja, o fato de uma thread dormir 4 seg , nao significa q ela ira acordar logo apos isso e voltar ao estado runnig( Consulta os estados das threads ). Para vc acordar uma thread vc usa o notify. Mas se a thread que esta aguardando a liberacao do lock de um objeto receber um notify, ela tb sera candidata a voltar a processamento, mas nao é garantido q ira voltar imediatamente. Ou seja, nao é garantido que ela voltara ao processamento antes do tempo do sleep, pois isso depende de varios fatores, tais como a JVM local de cada maquina. Bom , espero ter ajudado, abraco !
|
 |
|
|
|
|