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>
−
<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>
−
<message name="operacao">
<part name="parameters" element="tns:operacao"/>
</message>
−
<message name="operacaoResponse">
<part name="parameters" element="tns:operacaoResponse"/>
</message>
−
<portType name="NovoWebService">
−
<operation name="operacao">
<input message="tns:operacao"/>
<output message="tns:operacaoResponse"/>
</operation>
</portType>
−
<binding name="NovoWebServicePortBinding" type="tns:NovoWebService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
−
<operation name="operacao">
<soap:operation soapAction=""/>
−
<input>
<soap:body use="literal"/>
</input>
−
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
−
<service name="NovoWebServiceService">
−
<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/"
xmlns:xsd="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