JAX-WS xsd:import

Fala galera,

Estou criando um serviço com JAX-WS no Weblogic11. Ele funciona perfeitamente, entretanto gostaria de colocar todos os xsds das entradas/saídas junto ao wsdl. Hoje isso não acontece, ele usa o xsd:import para isso, separando o xsd em um arquivo diferente. Alguém sabe se é possível fazer essa junção usando anotação?

Esse é o trecho do xsd:import:

<xsd:schema> <xsd:import namespace="http://testService.services.test.com.br/" schemaLocation="http://127.0.0.1:7001/TestServiceWS/TestServiceWSService?xsd=1"/> </xsd:schema>

Este é o webservice:

[code]
@Stateless(mappedName = “services/testservice”)
@WebService
@Remote(value = ITestService.class)
@HandlerChain(file = “handler-chain.xml”)
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.BARE)
public class GetGroupTaskWS implements ITestService {

   public TestServiceOut testService(TestServiceIn in) throws Exception {  

… [/code]

valeu

pozzo, “o pulo do gato” é que os esquemas fiquem separados mesmo, não sei o motivo que te levou a querer tudo juntinho.

No meu caso tive um problema usando um cliente Delphi, onde o mesmo mão entrava em todos os níveis de schemas importados.
Consegui colocar tudo no wsdl manualmente, lógico que ctrl + c … ctrl + v de um pro outro não vai funcionar. Ha! ha! ha!

Mas abaixo tem um link com dica de como fazer tudo funcionar direitinho:
http://www.ehow.com/how_7691573_import-xsd-wsdl.html

Voltando, vc pode usar esse novo wsdl e recriar o serviço baseado nele (velho método bottom-up) onde tua classe de serviço java vai ser recriada.

Detalhe, a manutenção vai ficar no wsdl, no caso de novos tipos de dados. (bomba)

Sinceramente, esse trabalho todo para um projeto pequeno até que dá, mas como a tendência é sempre crescer… (sem comentários).

Acho que não ajudei muito, mas se você conseguir fazer isso via anotação é sempre uma informação bem vinda para comunidade!

Fala jeangos,

Obrigado pela resposta. Na verdade concordo contigo, mas é que aqui usamos um ESB Weblogic antigo, e para pendurar os serviços eu preciso subir o WSDL nele. Agora que estamos usando JAX-WS, a equipe de produção reclama que precisam subir o WSDL e vários xsds… Entendeu a pressão? rs rs
Nós estamos tentando mudar o menos possível do processo, mas é claro, isso é uma melhoria no processo.

Se encontrar algo, posto aqui.

valeu

Olá Pozzo, você pode definir os Types diramente dentro do contrato nessa respecitva área, porém não é recomendado. Sim, terá que repetir exatamente todos os ComplexTypes que estão no contrato, por tal motivo, isso não é uma boa prática, pois se mudar algo em qualquer um dos Schemas, terá que mudar em todos WSDL´s.

Quanto o seu problema com o ESB, leve todos os XSDs primeiramente para o ALSB, veja se há referências cíclicas, isso é um impeditivo forte. Depois suba os contratos. Caso o mesmo ainda se perca, edite o contrato e vá na aba de referências e localize o XSD.

PS: Não tem desculpa pra não fazer coisa certa 8)

Fala Kenobi,
Obrigado pela resposta. Mas eu nem penso em criar os wsdls manualmente. Vamos usar o que o JAX-WS gera mesmo. Na verdade, esse é um motivos da mudança.

Sobre o Aqualogic, ele é responsabilidade de outra equipe. Como é uma grande empresa, é interessante mudar as coisas devagar, para não causar muito impacto. Mas concordo, seria bom se tudo fosse feito da forma certa… he he

vlw