Как получить URL-адрес сервера для клиента при использовании Node-soap или Strong-soap

Я пишу сервис с помощью пакета node.js для мыла. Служба, кажется, работает нормально, когда я делаю "узел myService.js". Теперь, как мне получить URL, который будет передан клиенту? Если вам нужен мой wsdl-файл "myservice.wsdl" согласно приведенному ниже коду, пожалуйста, дайте мне знать. вот мой код

var http = require('http');
var soap = require('soap');
var express = require('express');
var bodyParser = require('body-parser');

var myService = {
     MyService: {
         MyPort: {
             post_csvDoc: function(csvDoc) {
                 return 200;
             },
             post_jsonDoc: function(csvDoc) {
                 return 200;
             },
             post_pdfDoc: function(csvDoc) {
                 return 200;
             },
             get_csvDoc: function(month) {
                 return "FirstDoc";
             },
             get_jsonDoc: function(month) {
                 return "SecondDoc";
             },
             get_pdfDoc: function(month) {
                 return "ThirdDoc";
             },
         }
     }
};

var xml = require('fs').readFileSync('myservice.wsdl', 'utf8');

//http server example
var server = http.createServer(function(request,response) {
    response.end('404: Not Found: ' + request.url);
});

server.listen(8000);
soap.listen(server, '/wsdl', myService, xml);

//express server example
var app = express();
//body parser middleware are supported (optional)
app.use(bodyParser.raw({type: function(){return true;}, limit: '5mb'}));
app.listen(8001, function(){
    //Note: /wsdl route will be handled by soap module
    //and all other routes & middleware will continue to work
    soap.listen(app, '/wsdl', myService, xml);
});

Это ошибка, которую я получаю при вводе пути при попытке http://127.0.0.1:8001/wsdl?wsdl:

Извините, я не обновил переполнение стека и поэтому не увидел ваш запрос на wsdl. Ниже wsdl:

<!-- 
Bramron
2018-06-23
let you post/retrieve online documents by SOAP protocol

Online WSDL 1.1 SOAP generator 0.2
Julien Blitte
 
--><definitions name="let you post/retrieve online documents by SOAP 
protocol" 
targetNamespace="bramron.group.company.project.plateform.documentservice.wsdl"><!-- 
definition of datatypes --> <types><schema 
targetNamespace="bramron.group.company.project.plateform.documentservice.xsd"><element 
name="csvDoc"><complexType><all><element name="value" 
type="string"/></all></complexType></element><element 
name="jsonDoc"><complexType><all><element name="value" 
type="string"/></all></complexType></element><element 
name="pdfDoc"><complexType><all><element name="value" 
type="string"/></all></complexType></element><element 
name="returnCode"><complexType><all><element name="value" 
type="int"/></all></complexType></element><element 
name="month"><complexType><all><element name="value" 
type="int"/></all></complexType></element></schema></types><!-- 
response messages --> <message name="returns_returnCode"><part 
name="returnCode" type="xsd:returnCode"/></message><message 
name="returns_csvDoc"><part name="csvDoc" 
type="xsd:csvDoc"/></message><message name="returns_jsonDoc"><part 
name="jsonDoc" type="xsd:jsonDoc"/></message><message 
name="returns_pdfDoc"><part name="pdfDoc" 
type="xsd:pdfDoc"/></message><!-- request messages --> <message 
name="post_csvDoc"><part name="csvDoc" 
type="xsd:csvDoc"/></message><message name="post_jsonDoc"><part 
name="jsonDoc" type="xsd:jsonDoc"/></message><message 
name="post_pdfDoc"><part name="pdfDoc" 
type="xsd:pdfDoc"/></message><message name="get_csvDoc"><part 
name="month" type="xsd:month"/></message><message 
name="get_jsonDoc"><part name="month" 
type="xsd:month"/></message><message name="get_pdfDoc"><part 
name="month" type="xsd:month"/></message><!-- server's services --> 
<portType name="Document"><operation name="post_csvDoc"><input 
message="tns:post_csvDoc"/><output 
message="tns:returns_returnCode"/></operation><operation 
name="post_jsonDoc"><input message="tns:post_jsonDoc"/><output 
message="tns:returns_returnCode"/></operation><operation 
name="post_pdfDoc"><input message="tns:post_pdfDoc"/><output 
message="tns:returns_returnCode"/></operation><operation 
name="get_csvDoc"><input message="tns:get_csvDoc"/><output 
message="tns:returns_csvDoc"/></operation><operation 
name="get_jsonDoc"><input message="tns:get_jsonDoc"/><output 
message="tns:returns_jsonDoc"/></operation><operation 
name="get_pdfDoc"><input message="tns:get_pdfDoc"/><output 
message="tns:returns_pdfDoc"/></operation></portType><!-- server 
encoding --> <binding name="Document_webservices" 
type="tns:Document"><soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/><operation 
name="post_csvDoc"><soap:operation 
soapAction="urn:xmethods-delayed-quotes#post_csvDoc"/><input><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input><output><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output></operation><operation 
name="post_jsonDoc"><soap:operation 
soapAction="urn:xmethods-delayed-quotes#post_jsonDoc"/><input><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input><output><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output></operation><operation 
name="post_pdfDoc"><soap:operation 
soapAction="urn:xmethods-delayed-quotes#post_pdfDoc"/><input><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input><output><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output></operation><operation 
name="get_csvDoc"><soap:operation 
soapAction="urn:xmethods-delayed-quotes#get_csvDoc"/><input><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input><output><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output></operation><operation 
name="get_jsonDoc"><soap:operation 
soapAction="urn:xmethods-delayed-quotes#get_jsonDoc"/><input><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input><output><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output></operation><operation 
name="get_pdfDoc"><soap:operation 
soapAction="urn:xmethods-delayed-quotes#get_pdfDoc"/><input><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input><output><soap:body 
use="encoded" namespace="urn:xmethods-delayed-quotes" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output></operation></binding><!-- 
access to service provider --> <service name="production"><port 
name="production_0" binding="Document_webservices"><soap:address 
location="http://127.0.0.1:8000/document_soap/endpoint1"/></port><port 
name="production_1" binding="Document_webservices"><soap:address 
location="http://127.0.0.1:8000/document_soap/endpoint2"/></port></service></definitions>

Резюме: для всех, кто заинтересован, ответ на этот вопрос:

  1. Использование http://127.0.0.1:8001/wsdl?wsdl в качестве URL вместо просто http://127.0.0.1:8001/wsd
  2. добавление пространств имен в теге определения согласно ссылке wsdl dropbox, опубликованной Терри. Спасибо, Терри. Смотрите "переехал в чат" ниже

1 ответ

Решение

URL вашей службы будет http://your-domain:8000/wsdl. Если вы работаете локально, это будет http://localhost:8000/wsdl, так как в этом случае вы установили номер порта на 8000. В этом случае у вас фактически работают два сервера, так что вы будете есть и прот 8001!

Другие вопросы по тегам