Web Services com NetBeans

1 resposta
D

Olá pessoal!

Estou utilizando o NetBeans 5.5 para criar um Web Service, da mesma forma, utilizo o Sun Java System Application Server 9 como servidor.

Minha dúvida está relacionada ao XML gerado pelo NetBeans. Não fica explícito os tipos de parametros do serviço (String).

O código do Web Service:

@Stateless()
 @WebService()
 @HandlerChain(name = "NovoWebService_handlerChain", file = "NovoWebService_handler.xml")
 public class NovoWebService {
     /**
      * Operação de serviço web
      */
     @WebMethod
     public String operacao() {
         // TODO implementar operação 
         return "teste";
     }
     
 }

O XML gerado:

definitions targetNamespace="http://esse/" name="NovoWebServiceService">
 −
 	<types>
 &#8722;
 	<xsd:schema>
 <xsd:import namespace="http://esse/" schemaLocation="http://denny:8080/NovoWebServiceService/NovoWebService/__container$publishing$subctx/META-INF/wsdl/NovoWebServiceService_schema1.xsd"/>
 </xsd:schema>
 </types>
 &#8722;
 	<message name="operacao">
 <part name="parameters" element="tns:operacao"/>
 </message>
 &#8722;
 	<message name="operacaoResponse">
 <part name="parameters" element="tns:operacaoResponse"/>
 </message>
 &#8722;
 	<portType name="NovoWebService">
 &#8722;
 	<operation name="operacao">
 <input message="tns:operacao"/>
 <output message="tns:operacaoResponse"/>
 </operation>
 </portType>
 &#8722;
 	<binding name="NovoWebServicePortBinding" type="tns:NovoWebService">
 <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
 &#8722;
 	<operation name="operacao">
 <soap:operation soapAction=""/>
 &#8722;
 	<input>
 <soap:body use="literal"/>
 </input>
 &#8722;
 	<output>
 <soap:body use="literal"/>
 </output>
 </operation>
 </binding>
 &#8722;
 	<service name="NovoWebServiceService">
 &#8722;
 	<port name="NovoWebServicePort" binding="tns:NovoWebServicePortBinding">
 <soap:address location="http://denny:8080/NovoWebServiceService/NovoWebService"/>
 </port>
 </service>
 </definitions>

o ideal é que o wsdl ficaria como esse:

<?xml version="1.0" encoding="UTF-8"?>
 <definitions targetNamespace="http://j2ee.netbeans.org/wsdl/novoWSDL"
     xmlns="http://schemas.xmlsoap.org/wsdl/"
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
     xmlnssd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://j2ee.netbeans.org/wsdl/novoWSDL" name="novoWSDL" xmlns:plink="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">
     <types/>
     <message name="novoWSDLOperationRequest">
         <part name="part1" type="xsd:string"/>
     </message>
     <message name="novoWSDLOperationReply">
         <part name="part1" type="xsd:string"/>
     </message>
     <portType name="novoWSDLPortType">
         <operation name="novoWSDLOperation">
             <input name="entrada1" message="tns:novoWSDLOperationRequest"/>
             <output name="saída1" message="tns:novoWSDLOperationReply"/>
         </operation>
     </portType>
     <binding name="novoWSDLBinding" type="tns:novoWSDLPortType">
         <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
         <operation name="novoWSDLOperation">
             <soap:operation/>
             <input name="entrada1">
                 <soap:body use="literal" namespace="http://j2ee.netbeans.org/wsdl/novoWSDL"/>
             </input>
             <output name="saída1">
                 <soap:body use="literal" namespace="http://j2ee.netbeans.org/wsdl/novoWSDL"/>
             </output>
         </operation>
     </binding>
     <service name="novoWSDLService">
         <port name="novoWSDLPort" binding="tns:novoWSDLBinding">
             <soap:address location="http://localhost:18181/novoWSDLService/novoWSDLPort"/>
         </port>
     </service>
     <plink:partnerLinkType name="novoWSDLPartner">
         <!-- partnerLinkType são gerados automaticamente quando um novo portType é adicionado. partnerLinkType são usados pelos processos BPEL. 
 Em um processo BPEL, um link de parceiro representa a interação entre o processo BPEL e um serviço de parceiro. Cada link de parceiro está associado a um tipo de link de parceiro.
 Um tipo de link de parceiro caracteriza a relação interativa entre dois serviços. Um tipo de link de parceiro pode ter uma ou duas funções.-->
         <plink:role name="novoWSDLPortTypeRole" portType="tns:novoWSDLPortType"/>
     </plink:partnerLinkType>
 </definitions>

Notem como fica visível o tipo do parametro no ultimo XML (String):

<part name="part1" type="xsd:string"/>

o que não acontece no primeiro!

Gostaria de saber se há alguma configuração no NetBeans ou algo a mais para se fazer para que o mesmo crie esse “type”. Estou tendo problemas com aplicações não Java para acessar esse serviço.

obrigado

1 Resposta

Anderson_Schmidt

olá,

Eu tive exatamente o mesmo problema, criando serviços no netbeans e tentando consumí-los em um client Delphi.

Também estou interessado na resposta. :lol:

Flws!
Schmidt

Criado 26 de junho de 2007
Ultima resposta 26 de jun. de 2007
Respostas 1
Participantes 2