PROBLEMA [JAVA] integrazione con node.js

Nico911

Utente Attivo
Salve, per un progetto per forza di cose devo integrare due server il problema è che sono scritti in 2 linguaggi diversi, il primo è in java il secondo in node.js non ho molto tempo a disposizione quindi l'unica mia possibilità è nel trovare un modo per far girare node.js su un programma Java.
Ho trovato la classe ScriptEngine per questo scopo, il problema è che devo eseguire molte require( è node.js Express) ho dovuto quindi ricorrere NashornScriptEngine che mi permette di abilitare le require.
Il problema è questo: l'ide non mi da alcun errore in fase di scrittura del programma, mi riconosce le classi mi importa addirittura in automatico le librerie di nashorn che sono incluse anche nel jdk12(se le cerco ce le trovo) .
Vado a fare la build mi da errore il package nashorn non esiste, l'unico modo in cui al momento ho risolto è stato estrarre il package direttamente dal jdk e in luderlo nel progetto, ma non risolvo niente perchè poi molte altre componenti/librerie di quel package non le trova e insomma sono da capo... Qualcuno mi sa aiutare/spiegare che succede?? (prima volta mi capita che mi trova la libreria è allo stesso tempo no xD) utilizzo IntelliJ per programmare.
 

Nico911

Utente Attivo
Quindi usi RequireJs ?
In quel caso devi configurare il path per fargli risolvere i percorsi per l'importazione dei pacchetti.
Esatto, ma il problema è proprio nel momento in cui devo inserire import jdk.nashorn.api.scripting per inserire l'oggetto nashornScriptManager che mi fa errore, me lo fa inserire tranquillamente anzi l'ide in auto mi da il nome della classe tra i suggerimenti e mi inserisce l'import necessario. Fin qua nessun errore, tutto riconosciuto e valido, faccio la build=> jdk.nashorn.api.scripting does not exist... É se vado a guardare tra i package della jdk12 ce lo trovo il package!!
 

Moffetta88

Utente Èlite
3,409
1,231
Hardware Utente
usare la jdk12, a mio avviso, è un po' prematuro. Sono uscite a marzo 2019, per un progetto da buttare in produzione eviterei come la peste..
Domanda, i due "server" cosa fanno?
Perchè se devi far parlare in un determinato modo i sue servizi, potresti creare un sistema di api semplice semplice tramite crud
 
  • Mi piace
Reactions: pabloski

pabloski

Utente Èlite
1,906
345
Hardware Utente
potresti creare un sistema di api semplice semplice tramite crud
Vero. Che poi ScriptEngine implementa l'interprete Javascript, ma i restanti moduli Node.js? Il javascript eseguito tramite ScriptEngine è limitato come nei browser. Di suo non ha possibilità di accedere alle risorse del sistema operativo. Ok che puoi invocare metodi Java, ma siccome il programma Node.js è già scritto e non usava Java...

Trasformare il programma Node.js in un microservice con interfaccia REST è la soluzione canonica in questo caso.
 
  • Mi piace
Reactions: Moffetta88

Nico911

Utente Attivo
usare la jdk12, a mio avviso, è un po' prematuro. Sono uscite a marzo 2019, per un progetto da buttare in produzione eviterei come la peste..
Domanda, i due "server" cosa fanno?
Perchè se devi far parlare in un determinato modo i sue servizi, potresti creare un sistema di api semplice semplice tramite crud
Allora uno è un server lwm2m basato sul protocollo coapper la gestione dei dispositivi Iot, in particolare è una server demo sviluppato tramite libreria leshan in java che poi dovró personalizzare per i miei scopi.
Col secondo server devo realizzare un three legged OAuth2 server per gestire l'accesso dell'utente tramite Google Home, accesso che avviene attraverso il cloud di Google, quindi sarebbero due interfacce una per la comunicazione dei token e l'altra per la gestione delle richieste e generare una redirect verso una pagina di login.
Il tutto stava in un interfaccia precostruita da Google, peró è disponibile solo in node.js(express.js). Dopo di che dovevo realizzare un bridging per lo scambio e la formattazione dei di dati tra questi due elementi.
Comunque non serve piú ho iniziato a scrivermi l'interfaccia a mano alla fine per i miei scopi faccio prima
 
Ultima modifica:
  • Mi piace
Reactions: Moffetta88

Entra

oppure Accedi utilizzando