Java Web Start, baixa mas não roda [RESOLVIDO]

E ai galera, blza?

Seguinte, estou com uma aplicação desktop que é pra rodar com Java Web Start, porém quando eu executo a jnlp ele baixa o aplicativo na máquina cliente porém não executa, alguém sabe o que pode ser?

Todos os jars estão assinados corretamente, se eu executar o jar principal diretamente o sistema funciona normalmente. O problema está sendo na execução do .jnlp, baixa o aplicativo e não roda.
Tentei rodar no apache, sem nenhuma configuração adiconal, e no tomcat, mudando o server.xml pra conter a linha abaixo.

<Context path="/projeto/lib" docBase="projeto/lib" debug="0" reloadable="true"/>

abaixo segue o caminho do jnlp dentro do tomcat

C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\projeto\Projeto.jnlp

e aqui está o caminho para os jars da aplicação, como tudo foi construído com Mavens, ele joga todos os jars, inclusive o principal dentro de uma pasta lib

C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\projeto\lib

Enfim, abaixo segue meu .jnlp

[code]<?xml version="1.0" encoding="utf-8"?>


Título
Vendedor

Desenvolvido por
































[/code]

Desde já agradeço a quem puder me ajudar,

o JRE esta atualizado?

Sim, está com o update 26 da versão 6.

Poxa, será que ninguém no fórum trabalha/entende de web start? já é a segunda vez que poso uma dúvida sobre a tecnologia e aparece só um cara pra ajudar.

como que está a propriedade do seu web start java do seu projeto

Esse é trecho do pom.xml em que eu declaro o plugin do webstart

<plugin> <groupId>org.codehaus.mojo.webstart</groupId> <artifactId>webstart-maven-plugin</artifactId> <version>1.0-beta-1</version> <executions> <execution> <phase>clean</phase> <goals> <goal>jnlp</goal> </goals> </execution> </executions> <configuration> <excludeTransitive>false</excludeTransitive> <libPath>lib</libPath> <jnlp> <inputTemplate>src/main/jnlp/template-jnlp.vm</inputTemplate> <outputFile>${jwsNameJnlp}</outputFile> <mainClass>${jwsMainClass}</mainClass> </jnlp> <sign> <keystore>${project.basedir}/src/main/jnlp/chave.jks</keystore> <keypass>senha</keypass> <storepass>senha</storepass> <alias>Chave</alias> <verify>true</verify> <keystoreConfig> <delete>false</delete> <gen>false</gen> </keystoreConfig> </sign> <pack200>true</pack200> <gzip>true</gzip> <outputJarVersions>true</outputJarVersions> <verbose>true</verbose> </configuration> </plugin>

Cara eu não sei c vc já faz isso, mas de qualquer forma vale a dica, coloque este script na pagina sua
de instalação da aplicação para verificar se o JRE necessário está instalado nas estacoes:

<script src="http://www.java.com/js/deployJava.js"></script>
<script>
    if (deployJava.versionCheck('1.6+')) {            
        var url = "seuArquivo.jnlp";
        deployJava.createWebStartLaunchButton(url, '1.6.0'); 
    } else {
        document.location.href="http://java.sun.com";
    }
</script>	

Este script usa o “Deployment Toolkit” bem bacana, auxilia muito na implantação de aplicações JWS,
mais detalhes acesse Este site tem um guia completo de utilização, espero que possa te ajudar.

Então, eu ainda não fiz a página pq não consigo nem fazer rodar, nem mesmo na minha máquina que está tudo atualizado quando eu executo o jnlp direto, ele baixa o sistema para a minha máquina mas não executa nada, e se eu executar o sistema direto, ele funciona, ou seja, o sistema TA funcionando, a JRE TA atualizada, o web start TA baixando só não está executando depois de baixar, isso que eu não sei como resolver.

Vc esta solicitando

Para isto o seu jar tem que esta assinado, ele esta??

E vc precisa de tudo isto de permissão mesmo? vai falar com outras aplicação? vai fazer IO na maquina? se não for não precisa de toda esta permissão.

[quote=ovelha]Vc esta solicitando

Para isto o seu jar tem que esta assinado, ele esta??

E vc precisa de tudo isto de permissão mesmo? vai falar com outras aplicação? vai fazer IO na maquina? se não for não precisa de toda esta permissão.

[/quote]

sim, os jars estão todos assinados, tanto que o aplicativo é baixado na máquina do cliente, haverá comunicação com web services e IO no servidor.

saquei

so por curiosidade
esta lib aqui esta certa? sem .jar no final? ou vc editou so para postar?

<jar href="lib/JARPRINCIPAL" main="true"/>  

[quote=ovelha]saquei

so por curiosidade
esta lib aqui esta certa? sem .jar no final? ou vc editou so para postar?

<jar href="lib/JARPRINCIPAL" main="true"/> [/quote]

só editei pra postar, na jnlp original está correto, só pra desencargo de consciência eu retirei a permissão, apenas para verificar, e o comportamento foi o mesmo, baixou o aplicativo mas não rodou.

Bom eu comparei seu jnlp com o jnlp de uma aplicação minha e notei que o valor do parâmetro espec da tag jnlp não está
com um valor adequado, pelo menos é o que diz q documentação

[quote]Value of the attribute can be 1.0, 1.5, or 6.0, or can use wildcards such as 1.0+. It denotes the minimum version of the JNLP Specification that this JNLP file can work with.[/quote] Neste site vc pode ver a documentação completa.
Experimente trocar por 6.0

Outra coisa, se puder, poste ai o código da sua classe principal, de repente a gente consegue identificar alguma coisa nela.
Tb coloque o código do jnlp na integra.

[quote=jokacwb]Bom eu comparei seu jnlp com o jnlp de uma aplicação minha e notei que o valor do parâmetro espec da tag jnlp não está
com um valor adequado, pelo menos é o que diz q documentação

[quote]Value of the attribute can be 1.0, 1.5, or 6.0, or can use wildcards such as 1.0+. It denotes the minimum version of the JNLP Specification that this JNLP file can work with.[/quote] Neste site vc pode ver a documentação completa.
Experimente trocar por 6.0

Outra coisa, se puder, poste ai o código da sua classe principal, de repente a gente consegue identificar alguma coisa nela.
Tb coloque o código do jnlp na integra.
[/quote]

tentei alterar, mas o comportamento é igual, baixa o aplicativo e não executa. O jnlp está postado na íntegra mais acima só estão com alguns nomes alterados devido a confidenciabilidade do código. Quanto a classe principal penso ser irrelevante, levando em conta que, sem ser pelo web start, a aplicação roda perfeitamente, o que me leva a crer que o problema não está na classe principal. Onde pode ter algo talvez seja no pom.xml por isso estão postando o pom na íntegra

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>pacote</groupId>
    <artifactId>Projeto</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>Projeto</name>
    <url>http://www.empresa.com.br</url>
    <description>Desenvolvido por</description>
    
    <organization>
        <name>Empresa</name>
        <url>http://www.empresa.com.br/</url>
    </organization> 
    
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jwsMainClass>pacote.ClassePrincipal</jwsMainClass>
        <jwsNameJnlp>Projeto.jnlp</jwsNameJnlp>
        <jwsCodebase>http://localhost:8080/projeto/</jwsCodebase>
        <jwsVersionJava>1.6.0+</jwsVersionJava>
    </properties>    
  
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>pacote.ClassePrincipal</mainClass>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration> 
            </plugin>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jasperreports-maven-plugin</artifactId>
                <version>1.0-beta-2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile-reports</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <outputDirectory>${project.build.directory}/generated-jasper</outputDirectory>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>net.sf.jasperreports</groupId>
                        <artifactId>jasperreports</artifactId>
                        <version>4.0.0</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo.webstart</groupId>
              <artifactId>webstart-maven-plugin</artifactId>
              <version>1.0-beta-1</version>
              <executions>
               <execution>
                   <phase>clean</phase>
                 <goals>
                   <goal>jnlp</goal>
                 </goals>
               </execution>
              </executions>
            <configuration>
               <excludeTransitive>false</excludeTransitive>
               <libPath>lib</libPath>                
                <jnlp>
                    <inputTemplate>src/main/jnlp/template-jnlp.vm</inputTemplate>
                    <outputFile>${jwsNameJnlp}</outputFile>
                    <mainClass>${jwsMainClass}</mainClass>
                </jnlp>
                    <sign>
                        <keystore>${project.basedir}/src/main/jnlp/chave.jks</keystore>
                        <keypass>senha</keypass>
                        <storepass>senha</storepass>
                        <alias>Projeto</alias>
                        <verify>true</verify> 
                        <keystoreConfig>
                            <delete>false</delete>
                            <gen>false</gen>
                        </keystoreConfig>
                    </sign>
                    <pack200>true</pack200>
                    <gzip>true</gzip>
                    <outputJarVersions>true</outputJarVersions>
                    <verbose>true</verbose>
          </configuration>
         </plugin>
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <schemaIncludes>
                                <include>jaxb/cancCte/*.xsd</include>
                            </schemaIncludes>
                            <episodeFile>${project.build.directory}/generated-sources/xjc/META-INF/jaxb-cancCte.episode</episodeFile>
                        </configuration>
                        <id>jaxb-generate-cancCte</id>
                    </execution>
                </executions>
                <configuration>
                    <catalog>src/main/resources/jaxb/catalog.xml</catalog>
                    <catalogResolver>org.jvnet.jaxb2.maven2.resolver.tools.ClasspathCatalogResolver</catalogResolver>
                    <forceRegenerate>true</forceRegenerate>
                    <generateDirectory>${project.build.directory}/generated-sources/xjc</generateDirectory>
                    <verbose>true</verbose>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
    <repositories>
        <repository>
            <id>java.net2</id>
            <name>Repository hosting the jee6 artifacts</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.6.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>3.6.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.2.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>4.0.0</version>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.barbecue</groupId>
            <artifactId>barbecue</artifactId>
            <version>1.5-beta1</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>8.4-702.jdbc4</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>br.com.caelum.stella</groupId>
            <artifactId>caelum-stella-core</artifactId>
            <version>1.2</version>           
        </dependency>
        <dependency>
            <groupId>br.com.caelum.stella</groupId>
            <artifactId>caelum-stella-hibernate-validator</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>br.com.caelum.stella</groupId>
            <artifactId>caelum-stella-bean-validation</artifactId>
            <version>2.0-beta1</version>
        </dependency>
        <dependency>
            <groupId>com.toedter</groupId>
            <artifactId>jcalendar</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>commons-email</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.4.4</version>
        </dependency>
        <dependency>
            <groupId>org.jrimum</groupId>
            <artifactId>jrimum</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>com.birosoft</groupId>
            <artifactId>liquid</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-bundle</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
            <version>3.3</version>
        </dependency>
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.3.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream-benchmark</artifactId>
            <version>1.3.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <artifactId>itext</artifactId>
            <groupId>com.lowagie</groupId>
            <type>jar</type>
            <version>2.1.7</version>
                    <exclusions>
                            <exclusion>
                                    <groupId>bouncycastle</groupId>
                                    <artifactId>bcmail-jdk14</artifactId>
                            </exclusion>
                            <exclusion>
                                    <groupId>bouncycastle</groupId>
                                    <artifactId>bcprov-jdk14</artifactId>
                            </exclusion>
                            <exclusion>
                                    <groupId>bouncycastle</groupId>
                                    <artifactId>bctsp-jdk14</artifactId>
                            </exclusion>
                    </exclusions>               
        </dependency>
    </dependencies>
</project>

eu não uso o maven, então não vou poder te ajudar neste quesito, mas vou acompanhar seu post estou prestes a por em produção uma aplicação jws e toda informação é importante.

boa sorte.

Problema Resolvido,

O que estava errado?

Bom, com Maven, declara-se algumas dependencias diretas que o seu software necessita, e algumas outras vem como dependencias indiretas, pq são dependencias das dependencias que vc tem, porém, devido a esse tipo de declaração indireta, o plugin do Maven para JWS não as adiciona ao JNLP adicionando apenas as dependencias diretas, fazendo assim com que dê ClassNotFoundException.

Como eu descobri?

No menu Java do Painel de Controle, vc tem a aba Avançado -> Controle Java, basta Exibir Console e dessa forma vc terá um stack trace enquanto o seu software executa, foi dessa forma que eu vi os erros.

Como solucionei?

Bastou declaras todas as dependencias indiretas como diretas (eu uso netbeans, isso foi possível com apenas um clique com o botão direito sobre a lib, no diretório de projeto Dependencias).

Após executar novamente, o JWS funcionou perfeitamente, baixando, executando e funcionando tudo.

Valeu as dicas e ajuda pessoal, espero que esse tópico sane dúvidas de outros que vierem a usar essas tecnologias