2013-01-24 24 views
7

Sto creando un'applicazione che fa molto affidamento sulla creazione/gestione dinamica di varie risorse come code jms, endpoint webservice, connessioni jdbc ... Ho un background in Java EE e sto attualmente lavorando su un jboss 7 server tuttavia trovo sempre più difficile controllare queste cose a livello di programmazione. La cosa più difficile da controllare sembra essere il servizio web. Devo essere in grado di generare al volo WSDL (e XSD), gestire endpoint, gestori di sapone, ecc. E il sistema semplicemente non sembra essere impostato per farlo.Controllando programmaticamente i server delle applicazioni

Altri server di applicazioni non sembrano davvero offrire soluzioni rivoluzionarie quindi mi chiedo se forse l'EE Java non è la soluzione migliore per questo particolare problema?

C'è un server delle applicazioni che ti permette di fare proprio questo? C'è un'altra tecnologia che fa? Devo semplicemente avviare una soluzione personalizzata che integri tutti i moduli separati (ad esempio un server jms, un server Web, ecc.)?

UPDATE

per chiarire, più roba Java EE si compie attraverso una miscela di annotazioni e di configurazione XML. Ciò presuppone tuttavia che tu abbia un POJO e/o un jar/war/... per risorsa.

Supponiamo di avere un bean @WebServiceProvider che può essere riutilizzato per più combinazioni di input/output (ad esempio perché reindirizza dinamicamente il contenuto). Devo essere in grado di distribuire al volo una nuova "istanza" del provider. Ciò significa che non voglio duplicare il codice e ridistribuirlo, voglio solo prendere quel bean esistente sul classpath e distribuirlo più volte con diverse impostazioni di configurazione. Ciò significa anche che devo gestire il WSDL in modo dinamico. Il risultato finale dovrebbe essere un servizio web che funziona come un normale servizio web sul server delle applicazioni con la sicurezza integrata necessaria, gestori di sapone, ...

Immagino che a un certo punto nel codice del server delle applicazioni, ci deve essere una classe "WebserviceManager" che ha un metodo come "createWebservice (...)" che viene effettivamente utilizzato dal modulo di distribuzione ogni volta che rileva un'annotazione del servizio web. Desidero accedere a tale metodo e metodi simili per la creazione di connessioni jdbc, code jms, ...

+1

Sembrerebbe che tu debba guardare all'automazione dello schieramento: fantoccio, cuoco, ecc. Su una scala più piccola, alcuni di questi possono essere raggiunti con Maven. – maksimov

+0

Non proprio, lo strumento stesso deve gestire tutti i diversi aspetti, non fare affidamento su strumenti e procedure esterni per ottenere qualcosa in esecuzione. – nablex

+0

È necessario creare queste risorse mentre l'applicazione è in esecuzione o in fase di distribuzione? – raffael

risposta

1

È possibile utilizzare OSGi per questo tipo di scenari. È perfetto per la distribuzione a caldo di vari moduli.

+0

OSGi presume che io abbia effettivamente un modulo. Il punto è creare e gestire le risorse al volo senza la disponibilità di un POJO annotato. – nablex

+0

@ user1109519 È possibile definire un'API Risorse da soli o utilizzare un'API esistente per farlo. Inoltre, non dimenticare che i POJO annotati sono solo una scorciatoia, puoi ottenere un maggiore controllo se usi direttamente le API del servizio OSGi correlate. –

+0

Quindi è possibile utilizzare un'interfaccia OSGi programmatica per registrare un webservice senza creare dummy xml, pojo o qualsiasi altro artefatto? Se è così, potresti indicarmi un tutorial? Non ho mai visto OSGi usato in questo modo. – nablex

Problemi correlati