No artigo anterior, apresentei a você uma explicação detalhada do tutorial do WebService (i)
Razões para usar as ferramentas:
1. Use ferramentas para entender melhor o processo de solicitações de serviço da web
2. Use a ferramenta WSEXplore para obter o formato da transmissão e recepção de dados SOAP.
3. Use a ferramenta TCP/IP Monitor para monitorar os dados específicos do cabeçalho da solicitação interceptores e do cabeçalho de resposta
O que é sabão?
SOAP é um protocolo de texto com base na especificação de codificação XML. Simplificando, o SOAP é transmitir dados XML no HTTP para realizar chamadas remotas [independentemente do idioma em que o servidor seja escrito, desde que você receba dados XML do protocolo SOAP e retorne dados XML do protocolo SOAP, ele pode ser chamado por qualquer idioma]
Usando a instância do WSEXPlorer: Verifique se o QQ está online
Ao usar a verificação qqcheckonline em QQonlinewebServiceSoAP, o retorno é
QQCHECKONlineResponse
qqcheckonlineResult (string): n
Clique em fonte para ver as informações detalhadas, as informações são as seguintes:
1: Este é o formato da mensagem:
A cópia do código é a seguinte:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: q0 =" http://webxml.com.cn/ "xmlns: xsd =" http://www.ww3 xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance">
-
-
870931520
2: a seguir está o formato XML recebido
A cópia do código é a seguinte:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema "xmlns: xsi =" http://wwww.ww.w3.20: xsi = "http://wwwww.ww.w3.20: xsi =" http://wwwww.ww.w3.20: xsi = "http://wwww.ww.w3.20: xsi =" http://wwww.ww.w3.20: xsi = "http://wwww.ww.w3.20: xsi
-
- http://webxml.com.cn/ ">
N
Ao usar o QQONLINEWEBSVICEHTTPGET ou QQONLINEWEBSVICEHTTPPOST, os retornados são todos
Nhttp: //webxml.com.cn/ "> n>
Usando o monitor TCP/IP
O monitor TCP/IP pode não apenas ver dados SOAP, mas também obter informações sobre o cabeçalho para solicitações e recepções HTTP.
1. Local: Esta ferramenta está localizada em: Window> Show View> Other> Myeclipse Common (Common Tools)> TCP/IP Monitor
2. Essa ferramenta é equivalente a um agente. Após a startup, ele ouvirá uma porta local e encaminhará a solicitação para o IP e a porta de destino especificados.
Depois de obter os dados, retorne os dados ao cliente intacto. Aos olhos dos clientes, esse agente deve sempre ser o primeiro a acessar, caso contrário, não veremos o processo de transmissão de dados.
3. Opções de configuração:
Na interface do monitor TCP/IP aberto: Menu Exibir (seta pequena na direção superior direita)> Propriedades> Adicionar (Adicionar à direita)
Defina para as seguintes propriedades:
Primeiro passo:
1) Porta de monitoramento local (ouça o número da porta local): 9876, defina um número da porta de 4 bits à vontade e será acessado na forma de http://127.0.1:9876
2) Nome do host (o servidor a ser ouvido, como www.vevb.com): 127.0.0.1 Como a máquina publica um serviço da web, ele monitora o IP nativo. Também pode ser qualquer host.
3) Porta (porta do servidor de destino a ser ouvida): 6666 - porque o serviço da web que publicamos é http://127.0.0.1:6666/helloworld, 6666 é o número da porta que precisa ser ouvido.
4) Tipo (o tipo de escuta):
- TCP/IP: O endereço original será usado para continuar acessando a próxima solicitação, como entrada do usuário: http://127.0.0.1:9876/helloworld?wsdl retornará ao endereço de acesso ao serviço WSDL como antes.
- HTTP: O endereço de destino continuará acessa a próxima solicitação. Como entrada do usuário: http://127.0.0.1:9876/helloworld?wsdl usará http://127.0.0.1:6666/helloworld para acessar o método Sayhi ao solicitar o método. Este método não será mais proxyed. Porque não é mais o número da porta que está sendo ouvido.
No tipo de escuta, selecionei o TCP/IP e verifiquei a alteração do endereço no arquivo WSDL retornado digitando: http://127.0.0.1:9876/helloworld?wsdl na barra de endereços.
Tempo limite: defina o tempo de conexão quando o acesso não tiver êxito e mantenha -o para 0, ou seja, não está definido.
Depois de configurá -lo, clique no botão OK e clique no botão Iniciar à direita e o monitoramento foi iniciado.
Etapa 2:
Configure o URL WSDL no myeclipse web Service para: http://127.0.0.1:9876/helloworld?wsdl, observe que a porta do Myeclipse TCP/IP Monitor é usada. Em vez de visitar diretamente o http://127.0.0.1:6666/helloworld?wsdl publicado
Como modificar o conteúdo do arquivo WSDL?
Use as anotações do WebService.
1. @Serviço de Definição de Serviço Web
2. @Método de definição de WebMethod
3.
4. @Parâmetros de defesa de webparam
Nota: Versões diferentes suportam diferentes níveis de comentários:
1 1.5 não é suportado.
2. As versões antes de 1.6.0_20 devem usar anotações completas.
3. Após 1.6.0_21, você só pode usar o @WebService para anotar a classe.
A função dos comentários:
Através dos comentários do WebService, você pode descrever o serviço da web de maneira mais vívida. Isso gera um documento WSDL.
Quando a anotação do WebService é modificada, o código gerado pelo cliente também afetará.
O método e os nomes dos parâmetros do chamado também alterados.
Exemplo:
@WebService (name = "myname", // porttype correspondente (myname "portName =" myport ", // Nome da porta correspondente =" myport "serviceName =" myService ", // nomes de serviço correspondente =" myService "TargetNamespace =" http./yn.com/npace (myService "TargetNamespace =" http://yn.com/npace "" SimpledateFormat sdf = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); @WebMethod (Action = "MyAction", // Definir um SoapAction = "MyAction" para encontrar esse método para executar a OperaçãoName = "MyoperationName") // Definir o método que pode ser chamado, e um método específico da classe correspondente será gerado, Nome da operação = "" "Public @webresult (Name de Namesyhelles "Helloworld"; } @WebMethod (Action = "mysayhiaction", Operaçãoname = "mysayhioperationName") public @WebResult (name = "mysayhiresult") string diz (@webparam (name = "myParaname", // coloque os parâmetros para o cabeçalho da informação para proteger as informações. str = "Olá:"+nome+", a hora atual é:"+sdf.format (new Date ()); retornar str; } public static void main (string [] args) {endpoint.publish ("http://127.0.0.1:6666/helloworld", new helloworld ()); }}3: Depois que o programa acima é divulgado ao público, acessamos -o através do WebService Explorer do Myeclipse
Você encontrará uma mensagem rápida diferente do que antes, mas, de fato, o mesmo método ainda é chamado.
4: Use o WSIMPORT S novamente. http://127.0.0.1:6666/helloworld?wsdl Para gerar código Java e depois chamar o seguinte é o código de chamada (ele pode ser descrito como irreconhecível, mas o mesmo trabalho é realizado.
pacote com.leaf.mynamespace; public class Main {public static void main (string [] args) {// analisando WSDL, podemos ver que chamando getMyport de myService retorna myname myName myName = new myService (). getMyport (); // Ligue para o método Sayhi através de MysayhioperationName de MyName String str = MyName.MySayHioperationName ("Wang Jian"); System.err.println (str); }}Explicação detalhada do tutorial do WebService (ii) Deixe -me apresentá -lo aqui primeiro, espero que seja útil para você!