Problema para gerar schema com JAXB

Pessoal,
eu estou tendo problemas para gerar Schema com JAXB…
segue o código:

[code]package br.com.caelum.fj31.jaxb;

import java.io.File;
import java.io.IOException;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.SchemaOutputResolver;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;

public class TesteGeraSchema {

public static void main(String[] args) throws Exception {
	JAXBContext context = JAXBContext.newInstance(Produto.class);
	context.generateSchema(new SchemaOutputResolver() {
		@Override
		public Result createOutput(String namespaceUri, String suggestedFileName)
				throws IOException {
			StreamResult result = new StreamResult(new File("teste.xsd")); 
			return result;
		}
	});
}

}[/code]
eis a mensagem:

06/07/2012 23:47:14 com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace writeTo INFO: java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\teste.xsd (O sistema não pode encontrar o caminho especificado) com.sun.xml.internal.txw2.TxwException: java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\teste.xsd (O sistema não pode encontrar o caminho especificado) at com.sun.xml.internal.txw2.output.StreamSerializer.<init>(Unknown Source) at com.sun.xml.internal.txw2.output.ResultFactory.createSerializer(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.writeTo(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.access$700(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator.write(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.generateSchema(Unknown Source) at br.com.caelum.fj31.jaxb.TesteGeraSchema.main(TesteGeraSchema.java:15) Caused by: java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\teste.xsd (O sistema não pode encontrar o caminho especificado) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) ... 7 more Exception in thread "main" java.io.IOException: java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\teste.xsd (O sistema não pode encontrar o caminho especificado) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.writeTo(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.access$700(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator.write(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.generateSchema(Unknown Source) at br.com.caelum.fj31.jaxb.TesteGeraSchema.main(TesteGeraSchema.java:15)

Alguém sabe o porque disso…
Na minha concepção o arquivo deveria ser gerado…pq não gera?
Eu ja tentei deixar o arquivo criado…mas não funfou…

Alguém sabe me ajudar?

Obrigado!

Alguém pode me dar uma luz?
Eu ja pesquisei na net e todos os exemplos que vi estão desse jeito…
É algum tipo de bug?

O seu bug é esse aqui:

java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\teste.xsd (O sistema não pode encontrar o caminho especificado)

Simplesmente não encontrou o arquivo XSD.

[quote=nel]O seu bug é esse aqui:

java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\teste.xsd (O sistema não pode encontrar o caminho especificado)

Simplesmente não encontrou o arquivo XSD.[/quote]

Mas ai que esta…
era para ele criar esse arquivo…
de qualquer forma…eu criei um arquivo nesse diretório e ele continuou dando erro.

Eu consegui gerar o .xsd utilizando o comando de linha de código schemagen…mas pelo eclipse não estou conseguindo…
Isso é muito estranho.

Altera isso:

 public Result createOutput(String namespaceUri, String suggestedFileName)  
                    throws IOException {  
                StreamResult result = new StreamResult(new File("teste.xsd"));   
                return result;  
            }  

para isso:

 File baseDir = new File(".")
 public Result createOutput(String namespaceUri, String suggestedFileName)  
                    throws IOException {  
                return new StreamResult(new File(baseDir, "teste.xsd"));   
            }  

Dá uma olhada aqui: http://jaxb.java.net/guide/Invoking_schemagen_programatically.html[code]

Senão funcionar, leia o site oficial do JAXB e procure pelo o que precisa. Deve ser um pequeno detalhe.
Tem dois links que lhe recomendo:

1 - http://jaxb.java.net/

2 - http://www.oracle.com/technetwork/articles/javase/index-140168.html

O primeiro é mais amplo, tem tutorial e exemplos.

[quote=nel]Altera isso:

 public Result createOutput(String namespaceUri, String suggestedFileName)  
                    throws IOException {  
                StreamResult result = new StreamResult(new File("teste.xsd"));   
                return result;  
            }  

para isso:

 File baseDir = new File(".")
 public Result createOutput(String namespaceUri, String suggestedFileName)  
                    throws IOException {  
                return new StreamResult(new File(baseDir, "teste.xsd"));   
            }  

Dá uma olhada aqui: http://jaxb.java.net/guide/Invoking_schemagen_programatically.html[code]

Senão funcionar, leia o site oficial do JAXB e procure pelo o que precisa. Deve ser um pequeno detalhe.
Tem dois links que lhe recomendo:

1 - http://jaxb.java.net/

2 - http://www.oracle.com/technetwork/articles/javase/index-140168.html

O primeiro é mais amplo, tem tutorial e exemplos.[/quote]

[quote][/quote]

Vlw cara, mas tbm não funfou…

07/07/2012 12:10:19 com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace writeTo INFO: java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\.\schema1.xsd (O sistema não pode encontrar o caminho especificado) com.sun.xml.internal.txw2.TxwException: [b]java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\.\schema1.xsd[/b] (O sistema não pode encontrar o caminho especificado) at com.sun.xml.internal.txw2.output.StreamSerializer.<init>(Unknown Source) at com.sun.xml.internal.txw2.output.ResultFactory.createSerializer(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.writeTo(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.access$700(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator.write(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.generateSchema(Unknown Source) at br.com.caelum.fj31.jaxb.TesteGeraSchema.main(TesteGeraSchema.java:15) Caused by: java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\.\schema1.xsd (O sistema não pode encontrar o caminho especificado) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) ... 7 more Exception in thread "main" java.io.IOException: java.io.FileNotFoundException: C:\Users\Bruno%20Luiz%20Viana\workspace-fj31\fj31-jaxb-standalone\.\schema1.xsd (O sistema não pode encontrar o caminho especificado) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.writeTo(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator$Namespace.access$700(Unknown Source) at com.sun.xml.internal.bind.v2.schemagen.XmlSchemaGenerator.write(Unknown Source) at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.generateSchema(Unknown Source) at br.com.caelum.fj31.jaxb.TesteGeraSchema.main(TesteGeraSchema.java:15)

Eu ja tinha visto esse tutoriais…
Eu vi na net que essa API tinha um bug…não sei se é esse…de qualquer forma obrigado.

Eu instalei um plugin no meu eclipse e rodei para gerar o .xsd.
Como o meu foco não é gerar o xsd na aplicação e sim apenas o XML e transformar o XML em objeto (o que etsa funcionando bem) eu vou deixar esse assunto na lista das proximas pesquisas e vou prossguir.

Muito obrigado pela ajuda.
Mas se alguém souber de algo pode postar pois isso esta me deixando com uma pulga atras da orelha.