2011-06-20 5 views
10

Claro, vas a decirme que SOAP está en desuso y, bueno, me veo obligado a usarlo.SOAP en Node.js

Ahora, lo he intentado con el módulo de ducha (https://github.com/marcgreenstock/douche) pero fracasa cuando hago esto (la URL WSDL está bien, de hecho estoy tratando el ejemplo proporcionado en test/index.js)

Client.wsdl.parse(function(wsdl) { 
    console.log(wsdl); 
}); 

el error es:

/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:74 
    attrs.forEach(function(url,index) { 
     ^
TypeError: Object #<Object> has no method 'forEach' 
    at [object Object]._read_namespaces (/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:74:9) 
    at /usr/local/lib/node_modules/douche/lib/douche/wsdl.js:20:10 
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/douche/lib/douche/wsdl.js:102:7) 
    at IncomingMessage.emit (events.js:81:20) 
    at HTTPParser.onMessageComplete (http.js:133:23) 
    at Socket.ondata (http.js:1226:22) 
    at Socket._onReadable (net.js:683:27) 
    at IOWatcher.onReadable [as callback] (net.js:177:10) 

Acerca de jabón (https://github.com/milewise/node-soap) no puedo instalarlo con la NGP, falla:

> [email protected] install /home/warorface/node_modules/soap/node_modules/node-expat 
> node-waf configure build 

> [email protected] preinstall /home/warorface/node_modules/soap/node_modules/compress 
> node-waf configure build 

Checking for program g++ or c++   : /usr/bin/g++ 
Checking for program g++ or c++   : /usr/bin/g++ 
Checking for program cpp     : /usr/bin/cpp 
Checking for program ar     : /usr/bin/ar 
Checking for program ranlib    : /usr/bin/ranlib 
Checking for g++       : ok 
Checking for node path     : not found 
Checking for node prefix     : ok /usr/local 
'configure' finished successfully (0.127s) 
Checking for program cpp     : /usr/bin/cpp 
Checking for program ar     : /usr/bin/ar 
Checking for program ranlib    : /usr/bin/ranlib 
Waf: Entering directory `/home/warorface/node_modules/soap/node_modules/node-expat/build' 
Checking for g++       : ok 
Checking for program gcc or cc   : /usr/bin/gcc 
[1/2] cxx: node-expat.cc -> build/default/node-expat_1.o 
Checking for program ar     : /usr/bin/ar 
Checking for program ranlib    : /usr/bin/ranlib 
../node-expat.cc:6:19: fatal error: expat.h: No existe el fichero o el directorio 
compilation terminated. 
Waf: Leaving directory `/home/warorface/node_modules/soap/node_modules/node-expat/build' 
Build failed: -> task failed (err #1): 
    {task: cxx node-expat.cc -> node-expat_1.o} 
Checking for gcc       : ok 
Checking for node path     : not found 
Checking for node prefix     : ok /usr/local 
Checking for library z     : npm ERR! error installing [email protected] Error: [email protected] install: `node-waf configure build` 
npm ERR! error installing [email protected] `sh "-c" "node-waf configure build"` failed with 1 
npm ERR! error installing [email protected]  at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20) 
npm ERR! error installing [email protected]  at ChildProcess.emit (events.js:67:17) 
npm ERR! error installing [email protected]  at ChildProcess.onexit (child_process.js:192:12) 
npm ERR! error installing [email protected] Error: [email protected] install: `node-waf configure build` 
npm ERR! error installing [email protected] `sh "-c" "node-waf configure build"` failed with 1 
npm ERR! error installing [email protected]  at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20) 
npm ERR! error installing [email protected]  at ChildProcess.emit (events.js:67:17) 
npm ERR! error installing [email protected]  at ChildProcess.onexit (child_process.js:192:12) 
npm ERR! [email protected] install: `node-waf configure build` 
npm ERR! `sh "-c" "node-waf configure build"` failed with 1 
npm ERR! 
npm ERR! Failed at the [email protected] install script. 
npm ERR! This is most likely a problem with the node-expat package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  node-waf configure build 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls node-expat 
npm ERR! There is likely additional logging output above. 
npm ERR! 
npm ERR! System Linux 2.6.38-8-generic-pae 
npm ERR! command "node" "/usr/local/bin/npm" "install" "soap" 
Traceback (most recent call last): 
    File "/usr/local/bin/node-waf", line 16, in <module> 
    Scripting.prepare(t, os.getcwd(), VERSION, wafdir) 
    File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare 
    prepare_impl(t, cwd, ver, wafdir) 
    File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl 
    main() 
    File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 188, in main 
    fun(ctx) 
    File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 241, in configure 
    conf.sub_config(['']) 
    File "/usr/local/bin/../lib/node/wafadmin/Configure.py", line 221, in sub_config 
    self.recurse(k, name='configure') 
    File "/usr/local/bin/../lib/node/wafadmin/Utils.py", line 634, in recurse 
    f(self) 
    File "/home/warorface/node_modules/soap/node_modules/compress/wscript", line 18, in configure 
    File "/usr/local/bin/../lib/node/wafadmin/Tools/config_c.py", line 444, in check 
    ret = self.run_c_code(*k, **kw) 
    File "/usr/local/bin/../lib/node/wafadmin/Tools/config_c.py", line 530, in run_c_code 
    bld.compile() 
    File "/usr/local/bin/../lib/node/wafadmin/Build.py", line 292, in compile 
    os.chdir(back) 
OSError: [Errno 2] No such file or directory: '/home/warorface/node_modules/soap/node_modules/compress/build/.conf_check_0' 
npm ERR! error installing [email protected] Error: [email protected] preinstall: `node-waf configure build` 
npm ERR! error installing [email protected] `sh "-c" "node-waf configure build"` failed with 1 
npm ERR! error installing [email protected]  at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20) 
npm ERR! error installing [email protected]  at ChildProcess.emit (events.js:67:17) 
npm ERR! error installing [email protected]  at ChildProcess.onexit (child_process.js:192:12) 
npm ERR! 
+3

La compilación falla porque falta expat.h. Instale la biblioteca de desarrollo que necesite (por ejemplo, libexpat1-dev). – Matthew

+1

'attrs.forEach' falla porque' attrs' es probablemente un objeto en lugar de una matriz. Pruebe 'Object.keys (attrs) .forEach' – Raynos

Respuesta

6

solucionado esta cuestión y bifurcadas la marcgreenstock repositorio/ducha en github:

https://github.com/kr1sp1n/douche

instalar mi ducha personalizada:

  1. git clone [email protected]: kr1sp1n/douche.git
  2. cd ducha
  3. enlace NPM
  4. cd/ruta/a/su/proyecto
  5. NPM desinstalación ducha
  6. NPM enlace de ducha

Eso es todo!

+0

lo intentará. Gracias. –