Ajuda - Maven 3 + JavaFX 2 + EJB 3.1 + JBoss AS 7

4 respostas
DKnight

Bom dia pessoal sou novo no forum, e estou recentemente estudando JavaFX 2.

A minha duvida é o seguinte, é possivel criar uma aplicação JavaFX 2 e disponibilizá-la em um servidor de aplicações como o JBoss 7 ?

Eu estou fazendo uns testes de arquitetura (um login simples), e a minha estrutura é esta mesmo, vou precisar do JBoss, do EJB e do Maven … Se o JFX não se encaixar neste escopo, terei que mudar de tecnologia “view”.

O que eu consegui até agora, foi a integração do JFX com o EJB 3.1 via maven e tal, tudo tranquilo.
O problema é que quando eu vou colocar o modulo para dar deploy no jboss, aparece a seguinte mensagem no log do jboss: "java.lang.ClassNotFoundException: javafx.application.Application"

A estrutura consiste em:
[list]um Jar com a logica de negocio e a parte de model / acesso à banco;[/list]
[list]um jar com a aplicação cliente em JFX.[/list]

Estes jars estão na pasta deployments do JBoss e quando o JBoss inicia, ele cria estes jars e disponibiliza como módulos.
O jar de negócio sobe e fica la disponível, mas o jar de cliente não sobe, dando a mensagem em azul acima.

Obs: A mesma estrutura funciona com JSF 2, a unica diferença é que dai o jar de cliente é substituído por um war cliente.

Alguém poderia me dar uma ajuda ou luz nesta situação ?

Obrigado.

4 Respostas

R

Olha, vou tentar ajudar, apesar de nunca ter feito isso.
JavaFX é um pouco diferente de JSF, um roda no jboss, o outro roda no cliente.
Logo ou vc disponibiliza essa aplicação como um applet, ou como java webstart (sou favoravel da segunda opção)
para isso terá que disponibilizar os jars dentro de uma aplicação web e configurar um jnlp
ou no caso de uma applet configurar uma pagina html corretamente que acesse os jars necessários (disponíveis dentro de um war)

De qualquer forma, o erro que você está tendo, talvez seria resolvido se vc tiver instalado o JDK7 que vem com o javafx por padrão.
Se mesmo assim não resolver, talvez devesse colocar o javafx como dependencia no maven (nunca usei o maven, mas acho que da pra fazer isso). Assim ao fazer o build o maven vai pegar as libs necessárias do javafx e incluir no classpath

DKnight

Então, esse erro eu corrigi, depois de me bater muito, descobri que sou obrigado a usar o JavaFX, como dependencia de sistema, não da pra acoplar à aplicação como “dependencia Maven” …

Já o aplicativo JavaFX, eu fui obrigado a jogar dentro de uma aplicação web que tem um index.html e chama o jnlp …
Achei que fica uma baita gambiarra, por isso vou procurar outras formas de fazer, assim que eu testar se o JavaFX busca as informações do EJB que se conecta ao banco …

Se alguem tiver uma ideia de como fazer isso, é bem vinda :slight_smile:

Obrigado …

Rafael Rossignol:
Olha, vou tentar ajudar, apesar de nunca ter feito isso.
JavaFX é um pouco diferente de JSF, um roda no jboss, o outro roda no cliente.
Logo ou vc disponibiliza essa aplicação como um applet, ou como java webstart (sou favoravel da segunda opção)
para isso terá que disponibilizar os jars dentro de uma aplicação web e configurar um jnlp
ou no caso de uma applet configurar uma pagina html corretamente que acesse os jars necessários (disponíveis dentro de um war)

De qualquer forma, o erro que você está tendo, talvez seria resolvido se vc tiver instalado o JDK7 que vem com o javafx por padrão.
Se mesmo assim não resolver, talvez devesse colocar o javafx como dependencia no maven (nunca usei o maven, mas acho que da pra fazer isso). Assim ao fazer o build o maven vai pegar as libs necessárias do javafx e incluir no classpath

R

o javawebstart após configurado precisa acessar os jars em algum lugar para que o cliente baixe esses jars e instale a aplicação.
O jar pode estar num apache, num jboss, ou qualquer servidor http
dessa forma, se vai usar JWS, ele precisa estar num servidor http, como vc já usa o jboss, pode ser nele mesmo.

Em relação ao html com link para o jnlp, é a porta de entrada do sistema.
Ou se preferir pode copiar o jnlp (que também deve estar num servidor http) para as maquinas clientes, mas perde um pouco da vantagem do negocio.

DKnight

Bom galera, após uma serie de testes que fiz.

Comprovei que no momento o JavaFX não está pronto para o nivel de detalhamento que eu preciso … Profissionalmente falando.

Obrigado pela ajuda, Tópico fechado. :thumbup:

Criado 10 de setembro de 2012
Ultima resposta 13 de set. de 2012
Respostas 4
Participantes 2