Executando aplicativo java swing no java web start

Prezados Srs.

Estou a dois dias tentando colocar um aplicativo swing desktop cliente x servidor para rodar em cima do JWS e não estou conseguindo, segue as configurações.

O arquivo JNLP:

<?xml version="1.0" encoding="ISO-8859-1"?>
<jnlp spec="6.0+"
	  codebase="file://192.168.1.111/Teste/"
      href="Genesis.jnlp"
>
<information>
  <title>ERP - Gênesis</title>
  <vendor>OJr Soluções em Tecnologia da Informação</vendor>
  <homepage href="/Teste" />
  <description>Sistema ERP Gênesis</description>
</information>

<offline-allowed/>

<security>
	<all-permissions/>
</security>

<resources>
  <j2se version="1.6+" href="http://java.sun.com/products/autodl/J2SE"/> 
  <jar href="Genesis.jar" main="true" />
</resources>

<resources os="Windows">
  <j2se version="1.6+" href="http://java.sun.com/products/autodl/J2SE"/> 
  <jar href="Genesis.jar" main="true" />
  <nativelib href="lib/eclipselink.jar" />
  <nativelib href="lib/javax.persistence_1.99.0.v200906021518.jar" />
  <nativelib href="lib/postgresql-8.4-701.jdbc4.jar" />
</resources>

<application-desc main-class="view.gerais.GnsGrsI1l">
</application-desc>

</jnlp>

Os arquivo java executável esta sendo gerado no Eclipse 3.5.1 (opção export => runnable jar file) a versão da JSE 1.6.0_17, o arquivo sendo executado na máquina roda com perfeição, até mesmo depois de efetuada a assinatura do jar.
Já limpei o cache do JWS, já tentei executar tirando a opção do all-permissions, já testei em diferentes equipamentos em rede, já empacotei o jar sem as libs, com as libs, bom até o presente momento não tenho mais idéias do que pode estar acontecendo.
Quando executo o javaws file://192.168.1.111/Teste/Genesis.jnlp são feitos o dowload dos jar e verificação da assinatura e logo após recebo a mesnagem de erro é:

Error: No Persistence provider for EntityManager named GENESIS-GERAIS

E a Exception:

javax.persistence.PersistenceException: No Persistence provider for EntityManager named GENESIS-GERAIS
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at services.gerais.GnsSvrGrs1a.(GnsSvrGrs1a.java:67)
at services.gerais.GnsSvrGrs1a.getInstancia(GnsSvrGrs1a.java:74)
at view.gerais.GnsGrsI1l.(GnsGrsI1l.java:44)
at view.gerais.GnsGrsI1l.getGnsGrsI1l(GnsGrsI1l.java:206)
at view.gerais.GnsGrsI1l.main(GnsGrsI1l.java:216)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Volto a frisar rodando nativamente na máquina roda sem problemas.

Abraços,

Olavo Jr.

Olá Olavo, acho que esse post pode lhe ajudar um pouco.

Lembrando que localmente o seu ClassLoader é diferente do que quando executado pelo java web start.

Até mais.

[quote=fabiozoroastro]Olá Olavo, acho que esse post pode lhe ajudar um pouco.

Lembrando que localmente o seu path é diferente do que quando executado pelo java web start.

Até mais.
[/quote]

Caro fabiozoroastro,

Como posso verificar o path localmente e o path executado pelo JWS ? Como o pacote é criado pelo Eclipse fico sem condições de manipular...

Abraços,

Olavo Jr.

Posta seu arquivo persistence.xml pra gente dar uma olhada juntos.

Segue:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
	xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="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="GENESIS-GERAIS"
		transaction-type="RESOURCE_LOCAL">
		<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
		<class>model.gerais.Usuario</class>
		<class>model.gerais.Modulo</class>
		<class>model.gerais.Programa</class>
		<class>model.gerais.Permissao_Modulo</class>
		<class>model.gerais.Permissao_Programa</class>
		<class>model.gerais.Modulo_Programa</class>
		<class>model.gerais.Pessoa</class>
		<class>model.gerais.Matriz</class>
		<class>model.gerais.Filial</class>
		<class>model.gerais.Cliente</class>
		<class>model.gerais.Contato_Cliente</class>
		<class>model.gerais.Endereco_Cliente</class>
		<class>model.gerais.Grupo_Simples</class>
		<class>model.gerais.Funcao</class>
		<class>model.gerais.Insumo</class>
		<class>model.gerais.Ins_Material</class>
		<class>model.gerais.Ins_Uniforme</class>
		<class>model.gerais.Ins_Epi</class>
		<class>model.gerais.Ins_Variavel</class>
		<class>model.gerais.Equipamento</class>
		<class>model.gerais.E_Depreciacao</class>
		<class>model.gerais.E_Manutencao</class>
		<class>model.gerais.Encargo_Social</class>
		<class>model.gerais.Verba</class>
		<class>model.gerais.ES_Verba</class>
		<class>model.gerais.Pais</class>
		<class>model.gerais.Estado</class>
		<class>model.gerais.Municipio</class>
		<class>model.gerais.Trb_Pais</class>
		<class>model.gerais.Trb_Estado</class>
		<class>model.gerais.Trb_Municipio</class>
		<class>model.gerais.Sindicato</class>
		<class>model.gerais.S_Funcao</class>
		<class>model.gerais.SF_Nivel</class>
		<class>model.gerais.Vb_Referencia</class>
		<class>model.gerais.Transporte_Coletivo</class>
		<class>model.vendas.Vendedor</class>
		<class>model.vendas.Proposta</class>
		<class>model.vendas.Servico</class>
		<class>model.vendas.Posto_Servico</class>
		<class>model.vendas.Insumo_Posto</class>
		<class>model.vendas.Equipamento_Posto</class>
		<class>model.vendas.EP_Depreciacao</class>
		<class>model.vendas.EP_Manutencao</class>
		<class>model.vendas.PS_ESocial</class>
		<class>model.vendas.PS_TPais</class>
		<class>model.vendas.PS_TEstado</class>
		<class>model.vendas.PS_TMunicipio</class>
		<class>model.vendas.PS_Funcionario</class>
		<class>model.vendas.PSF_Verba</class>
		<properties>
			<property name="eclipselink.jdbc.user" value="postgres" />
			<property name="eclipselink.jdbc.password" value="senha" />
			<property name="eclipselink.jdbc.url"
				value="jdbc:postgresql://192.168.1.150:5432/genesis" />
			<property name="eclipselink.jdbc.driver" value="org.postgresql.Driver" />
			<property name="eclipselink.logging.level" value="INFO" />
		</properties>
	</persistence-unit>
	<persistence-unit name="GENESIS-VENDAS"
		transaction-type="RESOURCE_LOCAL">
		<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
		<class>model.gerais.Usuario</class>
		<class>model.gerais.Modulo</class>
		<class>model.gerais.Programa</class>
		<class>model.gerais.Permissao_Modulo</class>
		<class>model.gerais.Permissao_Programa</class>
		<class>model.gerais.Modulo_Programa</class>
		<class>model.gerais.Pessoa</class>
		<class>model.gerais.Matriz</class>
		<class>model.gerais.Filial</class>
		<class>model.gerais.Cliente</class>
		<class>model.gerais.Contato_Cliente</class>
		<class>model.gerais.Endereco_Cliente</class>
		<class>model.gerais.Grupo_Simples</class>
		<class>model.gerais.Funcao</class>
		<class>model.gerais.Insumo</class>
		<class>model.gerais.Ins_Material</class>
		<class>model.gerais.Ins_Uniforme</class>
		<class>model.gerais.Ins_Epi</class>
		<class>model.gerais.Ins_Variavel</class>
		<class>model.gerais.Equipamento</class>
		<class>model.gerais.E_Depreciacao</class>
		<class>model.gerais.E_Manutencao</class>
		<class>model.gerais.Encargo_Social</class>
		<class>model.gerais.Verba</class>
		<class>model.gerais.ES_Verba</class>
		<class>model.gerais.Pais</class>
		<class>model.gerais.Estado</class>
		<class>model.gerais.Municipio</class>
		<class>model.gerais.Trb_Pais</class>
		<class>model.gerais.Trb_Estado</class>
		<class>model.gerais.Trb_Municipio</class>
		<class>model.gerais.Sindicato</class>
		<class>model.gerais.S_Funcao</class>
		<class>model.gerais.SF_Nivel</class>
		<class>model.gerais.Vb_Referencia</class>
		<class>model.gerais.Transporte_Coletivo</class>
		<class>model.vendas.Vendedor</class>
		<class>model.vendas.Proposta</class>
		<class>model.vendas.Servico</class>
		<class>model.vendas.Posto_Servico</class>
		<class>model.vendas.Insumo_Posto</class>
		<class>model.vendas.Equipamento_Posto</class>
		<class>model.vendas.EP_Depreciacao</class>
		<class>model.vendas.EP_Manutencao</class>
		<class>model.vendas.PS_ESocial</class>
		<class>model.vendas.PS_TPais</class>
		<class>model.vendas.PS_TEstado</class>
		<class>model.vendas.PS_TMunicipio</class>
		<class>model.vendas.PS_Funcionario</class>
		<class>model.vendas.PSF_Verba</class>
		<properties>
			<property name="eclipselink.jdbc.user" value="postgres" />
			<property name="eclipselink.jdbc.password" value="senha" />
			<property name="eclipselink.jdbc.url"
				value="jdbc:postgresql://192.168.1.150:5432/genesis" />
			<property name="eclipselink.jdbc.driver" value="org.postgresql.Driver" />
			<property name="eclipselink.logging.level" value="INFO" />
		</properties>
	</persistence-unit>
</persistence>

Veja fabiozoroastro,

Alterando a linha para:
codebase="file:///D:/Teste/"
Consigo acessar na máquina local onde os jar's estão, minha dificuldade agora está no acesso das drmais máquinas na rede !

Abraços,

Olavo Jr.

Alterando qual linha?
Onde está esse codebase?

[quote=fabiozoroastro]Alterando qual linha?
Onde está esse codebase?[/quote]

Caro fabiozoroastro,

Esta linha refere-se ao aquivo JNLP

O arquivo JNLP:

<?xml version="1.0" encoding="ISO-8859-1"?>
<jnlp spec="6.0+"
	  codebase="file:///D:/Teste/"
      href="Genesis.jnlp"
>
<information>
  <title>ERP - Gênesis</title>
  <vendor>OJr Soluções em Tecnologia da Informação</vendor>
  <homepage href="/Teste" />
  <description>Sistema ERP Gênesis</description>
</information>

<offline-allowed/>

<security>
	<all-permissions/>
</security>

<resources>
  <j2se version="1.6+" href="http://java.sun.com/products/autodl/J2SE"/> 
  <jar href="Genesis.jar" main="true" />
</resources>

<resources os="Windows">
  <j2se version="1.6+" href="http://java.sun.com/products/autodl/J2SE"/> 
  <jar href="Genesis.jar" main="true" />
  <nativelib href="lib/eclipselink.jar" />
  <nativelib href="lib/javax.persistence_1.99.0.v200906021518.jar" />
  <nativelib href="lib/postgresql-8.4-701.jdbc4.jar" />
</resources>

<application-desc main-class="view.gerais.GnsGrsI1l">
</application-desc>

</jnlp>

Da forma como está eu executo a aplicação através do JWS na máquina local sem problemas, mas não consigo acesso com as máquinas da rede. Alterando para file://192.168.1.111/Teste volto a receber a mensagem de erro tanto na máquina local como nas demais máquinas da rede.
Está quase certo que o problema é no classpath do JWS, mas não sei como resolver…

Abraços,

Olavo Jr.

Ahmmm. Substitua por:

<jnlp spec="6.0+"  codebase="http://192.168.1.111/Teste/"  href="Genesis.jnlp"> 

Lembrando que essa url do codebase tem que ser uma URL válida, ok?
Testa aí. Creio que deva funcionar. Abraço.

[quote=fabiozoroastro]Ahmmm. Substitua por:

<jnlp spec="6.0+"  codebase="http://192.168.1.111/Teste/"  href="Genesis.jnlp"> 

Lembrando que essa url do codebase tem que ser uma URL válida, ok?
Testa aí. Creio que deva funcionar. Abraço.[/quote]

Bom dia fabiozoroastro,

A questão é não possuo servidor HTTP e nem FTP, minha intenção seria usar o JWS sem estes, ou no máximo usar um servidor FTP no Linux para acomodar os arquivos jar's. Por enquanto estou fazendo testes em máquinas da rede para ver se é viável ou não (questões de performance, de usabilidade, etc...).
Não vou montar um servidor HTTP na minha rede somente para manter este serviço, até concordo com um servidor FTP, pois assim poderei acessá-lo de fora da rede para atualizar o aplicativo, mas ao meu ver deveria rodar como estou tentando sem a presença do servidor HTTP ou FTP.
Se o jar rodou em cima do JWS na minha máquina local, o problema realmente deva estar no classpath, mas ainda não consegui chegar lá. A mensagem de Error deveria ser mai clara mais detalhada...

Abraços,

Olavo Jr.

Hamm… Entendi…

Olavo, creio que não tenha jeito. Você terá que ter o seu jnlp instalado em pelo menos um servidor web para o mesmo funcionar.
Você pode ler a documentação no site para confirmar o que estou dizendo, mas pelo que sei, você não conseguirá dessa forma que está tentando.

Instala o apache e roda apenas com ele. É bem simples de configurá-lo. =)
Até mais!

[quote=fabiozoroastro]Hamm… Entendi…

Olavo, creio que não tenha jeito. Você terá que ter o seu jnlp instalado em pelo menos um servidor web para o mesmo funcionar.
Você pode ler a documentação no site para confirmar o que estou dizendo, mas pelo que sei, você não conseguirá dessa forma que está tentando.

Instala o apache e roda apenas com ele. É bem simples de configurá-lo. =)
Até mais![/quote]

Caro fabiozoroastro,

Era justamente isto que não queria ouvir...

Abraços,

Olavo Jr.

[quote=Olavo-Brito]
Caro fabiozoroastro,

Era justamente isto que não queria ouvir...

Abraços,

Olavo Jr.[/quote]

eheh… Testa com o apache mesmo. =)