Erro com ThinWire

8 respostas
trgpwild

Olá pessoal,
Eu estava tentando fazer funcionar o helloworld com thinwire mas está dando este erro:

java.lang.IllegalArgumentException: InputStream cannot be null
	javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
	thinwire.util.XOD.processFile(XOD.java:372)
	thinwire.util.XOD.execute(XOD.java:355)
	thinwire.render.web.WebApplication.<init>(WebApplication.java:396)
	thinwire.render.web.WebServlet.handleStart(WebServlet.java:189)
	thinwire.render.web.WebServlet.service(WebServlet.java:95)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Alguém saberia me dizer o que preciso fazer?
Detalhes do que tenho no classpath:

jdk 1.5 commons-fileupload-1.0.jar thinwire.jar
o web.xml:

<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>thinwire.render.web.WebServlet</servlet-class>
		<init-param>
			<param-name>mainClass</param-name>
			<param-value>pacote.hello.Main</param-value>
		</init-param>
		<init-param>
			<param-name>styleSheet</param-name>
			<param-value>DefaultStyle</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>
</web-app>

a classe:

package pacote.hello;

import thinwire.ui.Application;
import thinwire.ui.Dialog;
import thinwire.ui.Label;

public class Main {

	public static void main(String[] args) {
		
		Application.current().getFrame().setTitle("Olá Mundo!");
		
		Dialog dialog = new Dialog();
		dialog.setTitle("Janela");
		dialog.setBounds(100, 100, 400, 200);

		Label label = new Label();
		label.setText("Olá Mundo!");
		label.setSize( 150, 50 );
		
		dialog.getChildren().add(label);
		dialog.setVisible(true);
		
		
	}

}

8 Respostas

trgpwild

Iae pessoal, ninguém sabe?

C

Se não me engano você tem que mapear usando /*

<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>

Editar:

“Devido a um bug ainda não resolvido na
versão utilizada desse tutorial (a 1.2rc1), é necessário que sempre haja uma aplicação mapeada para a
URL ?/?, então, se você vai colocar várias aplicações do Thinwire em uma única aplicação web, lembrese
sempre de adicionar uma delas mapeada para o contexto raiz em ?/
?, as outras aplicações podem ter
as suas URLs normalmente (o mapeamento genérico não vai afetar o seu funcionamento). Você também
pode simplesmente mapear o mesmo servlet para dois caminhos de URL distintos.”

Retirado do tutorial de Thinwire do próprio GUJ.

Mauricio_Linhares

Pois é, tem que ter pelo menos um servlet do Thinwire mapeado pra “/*”.

C

Esqueci de comentar o nome do autor XD já tinha fechado o tutorial(chequei pra ver se não falava besteira hehe :p) imagino que seja o próprio usuário acima.

kaique

Seguinte pessoal, baixei o tutorial aqui do guj (acho que é o mesmo em questão), e nesse tutorial e exemplo que ele mostra utiliza o mapeamento “/" de que vocês tanto falam, mas continua dando o mesmo problema. E o que é mais estranho ainda, é que se eu fazer o deploy do helloworld que vem junto com o SDK, funciona que é uma beleza, mas no web.xml de lá não existe o mapeamento "/” para a classe principal.
E ai? Alguém sabe o por que dessa ocorrência bizarra??

[]'s.

kaique

Galera, seguinte…
Consegui colocar o exemplo do GUJ para funcionar. O que eu fiz de adicional copiar o conteúdo da pasta DefaultStyle de algum projeto de exemplo que veio no SDK (helloworld, para ser mais específico) para dentro da mesma pasta no meu projeto. Ainda não sei o porque e também nem olhei o que o xml que tem dentro da pasta está mapeando, mas com certeza é algo importante para funcionar normal…

[]'s.

C

No tutorial do GUJ fala pra fazer isso mesmo. Dei uma olhada aqui pra conferir.

trgpwild

Obrigado pela ajuda pessoal, consegui…

Criado 13 de setembro de 2007
Ultima resposta 14 de set. de 2007
Respostas 8
Participantes 4