PROBLEMA [JAVA] integrazione con node.js

Nico911

Utente Attivo
192
13
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.
 

Mursey

Super Moderatore
Staff Forum
Utente Èlite
8,229
5,657
Quindi usi RequireJs ?
In quel caso devi configurare il path per fargli risolvere i percorsi per l'importazione dei pacchetti.
 

Nico911

Utente Attivo
192
13
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

Moderatore
Staff Forum
Utente Èlite
20,543
12,932
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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
Reazioni: pabloski

pabloski

Utente Èlite
2,868
916
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
Reazioni: Moffetta88

Nico911

Utente Attivo
192
13
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
Reazioni: Moffetta88

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili