Applet jar + chamada Axis ao WebService

3 respostas
vi-gb

Tenho um projeto de applet que se comunica com um webService para pegar iunformacoes e exibi-las, se rodo pelo eclipse como applet ela funciona direitinho, porém quando coloco em uma pagina jsf, com os imports e tudo ele da erro.

Esta é a chamada da applet
<f:view>
	<a4j:form id="formApplet">
		<rich:tabPanel id="pnlApplet">
			<rich:tab label="Applet" id="tabPanel">

				<f:verbatim>
					<applet code="Applet.class" archive="Applet.jar, axis.jar, commons-beanutils-bean-collections.jar, commons-beanutils-core.jar, commons-beanutils.jar, commons-collections.jar, commons-digester-1.8.jar, commons-digester.jar, commons-logging.jar, dom4j.jar, jaxrpc.jar, saaj.jar, wsdl4j-1.5.1.jar, commons-collections-3.2.1.jar, commons-discovery-0.2.jar, commons-logging-1.0.4.jar" 
					width="1200" height="605" codebase=".">
					</applet>
				</f:verbatim>
			</rich:tab>
		</rich:tabPanel>
	</a4j:form>
</f:view>
E este é o erro:
java.lang.NoClassDefFoundError: org/apache/axis/client/Call
	at br.com.applet.webService.ng.WebServiceNG.getIdSessaoWebService(WebServiceNG.java:46)
	at br.com.applet.webService.ng.WebServiceNG.setPontoInicial(WebServiceNG.java:61)
	at Applet.init(Applet.java:60)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.axis.client.Call
	at sun.applet.AppletClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Alguem tem ideia do que pode ser?

3 Respostas

doug

Olá

Tive um problema parecido com esse. É que seus jar que você setou no Class-Path eles não estão sendo importados dentro da applet.
Resolvi de uma forma meia feia, mas foi o que funcionou.
Eu fiz um ant que extraia todos os jar, para uma pasta build e eu copiava dentro desta pasta todos os meus class do meu projeto.

Dai empacotava tudo em um jar único. Com tudo dentro.. todas as lib junto com o meu projeto, dai parou de dar esse problema.
Caso vc consiga desta forma, conte-nes como conseguiu fazer.

Espero ter ajudado
Flwsss

vi-gb

O problema e que o applet ficara muito grande nao é?
Consegui fazer a chama sem Axis, com isso so estou precisando importar uma lib, a dom4j que uso para ler o xml de retorno, tem alguma maneira de ler o xml sem usa-lo ou usando alguma lib nativa?

Outra coisa, como faco pra declarar o jar se ele estiver em local diferente do jsf que chama a applet? Sei que é no codeBase mas como faze-lo enxergar o endereco que eu quero?

vi-gb

Descobri, criei uma pasta e coloquei os jars nela e no codeBase da applet coloquei o endereco completo ex: http://ipServidor/MinhaApp/pastaDosJars/
Com isso a applet encontrouos jars.
Vlw pela ajuda thiago.

Criado 21 de agosto de 2009
Ultima resposta 26 de ago. de 2009
Respostas 3
Participantes 2