-
giambinaHo un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
Che fare?
Young professional woman and busy mom.-
Re: giambinaScritto daWakko WarnerWakkus Horribilisil 2016-09-27 14:01:34.0 alle 2016-09-27 14:01:34.0Trollate totali: 6779Scritto da: ::1
> Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> Che fare?
Passa a C# dove non ti cambiano le cose sotto i piedi!
Gli Svizzeri non sono tutti ricchi - Mattia-
Re: giambinaScritto da: Wakko Warner
> Scritto da: ::1
> > Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> > Che fare?
>
> Passa a C# dove non ti cambiano le cose sotto i piedi!

Websphere non e' Java, tamburo
!
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: giambinaScritto daWakko WarnerWakkus Horribilisil 2016-09-27 14:13:18.0 alle 2016-09-27 14:13:18.0Trollate totali: 6779Scritto da: Giambo
> Scritto da: Wakko Warner
> > Scritto da: ::1
> > > Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> > > Che fare?
> >
> > Passa a C# dove non ti cambiano le cose sotto i piedi!

>
> Websphere non e' Java, tamburo
!
Se usasse C# non avrebbe bisogno di WebSphere.
Gli Svizzeri non sono tutti ricchi - Mattia-
Re: giambinaScritto da: Wakko Warner
> > > > Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> > > > Che fare?
> > >
> > > Passa a C# dove non ti cambiano le cose sotto i piedi!

> >
> > Websphere non e' Java, tamburo
!
>
> Se usasse C# non avrebbe bisogno di WebSphere.

Nessuno ha bisogno di Websphere, solo quelli brainwashati da IBM
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: giambinaScritto daWakko WarnerWakkus Horribilisil 2016-09-27 14:20:27.0 alle 2016-09-27 14:20:27.0Trollate totali: 6779Scritto da: Giambo
> Scritto da: Wakko Warner
>
> > > > > Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> > > > > Che fare?
> > > >
> > > > Passa a C# dove non ti cambiano le cose sotto i piedi!

> > >
> > > Websphere non e' Java, tamburo
!
> >
> > Se usasse C# non avrebbe bisogno di WebSphere.

>
> Nessuno ha bisogno di Websphere, solo quelli brainwashati da IBM
Ciò non toglie che se usasse C# ora non avrebbe questi problemi.
Gli Svizzeri non sono tutti ricchi - Mattia-
Re: giambinaScritto da: Wakko Warner
> > > > > > Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> > > > > > Che fare?
> > > > >
> > > > > Passa a C# dove non ti cambiano le cose sotto i piedi!

> > > >
> > > > Websphere non e' Java, tamburo
!
> > >
> > > Se usasse C# non avrebbe bisogno di WebSphere.

> >
> > Nessuno ha bisogno di Websphere, solo quelli brainwashati da IBM
>
> Ciò non toglie che se usasse C# ora non avrebbe questi problemi.

Ne avrebbe di peggiori, per esempio cercarsi un lavoro
...
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
-
-
-
-
Re: giambinaScritto da: ::1
> Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> Che fare?
Da quando ho abbandonato l'UBS, ho bevuto tanto alcool col preciso intento di dimenticare WebSphere.
Pero' la tua situazione non mi pare particolare, sicuro che su stackoverflow qualcuno non ha avuto un problema simile ?`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: giambinaScritto da: Giambo
> Scritto da: ::1
> > Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> > Che fare?
>
> Da quando ho abbandonato l'UBS, ho bevuto tanto alcool col preciso intento di dimenticare WebSphere.
> Pero' la tua situazione non mi pare particolare, sicuro che su stackoverflow qualcuno non ha avuto un problema simile ?
Non trovo niente, o forse sbaglio keyword. L'alternativa è copiare in lib/ext il jar delle api, ma se hanno architettato diversamente i classloader non vorrei spaccare qualcos'altro.Young professional woman and busy mom.-
Re: giambinaScritto da: ::1
> > Pero' la tua situazione non mi pare particolare, sicuro che su stackoverflow qualcuno non ha avuto un problema simile ?
>
> Non trovo niente, o forse sbaglio keyword.
O forse quel che vuoi fare e' sbagliato ...
> L'alternativa è copiare in lib/ext il jar delle api, ma se hanno architettato diversamente i classloader non vorrei spaccare qualcos'altro.
Oh, le gioie e i dolori del classloading con Websphere
**Modificato dall'autore il 27.09.2016 19:19**`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: giambinaScritto da: Giambo
> Scritto da: ::1
>
> > > Pero' la tua situazione non mi pare particolare, sicuro che su stackoverflow qualcuno non ha avuto un problema simile ?
> >
> > Non trovo niente, o forse sbaglio keyword.
>
> O forse quel che vuoi fare e' sbagliato ...
>
> > L'alternativa è copiare in lib/ext il jar delle api, ma se hanno architettato diversamente i classloader non vorrei spaccare qualcos'altro.
>
> Oh, le gioie e i dolori del classloading con Websphere
Quello che voglio fare è giusterrimo: è un tool che usiamo in ambiente di test per verificare come viene utilizzata la sessione nelle applicazioni (e funziona appunto iniettando un getSession custom sull'implementazione della servlet di websphere).
Non ci si può fidare delle scimmie ammaestrate e le code review non esistono.Young professional woman and busy mom.-
Re: giambinaScritto da: ::1
> Quello che voglio fare è giusterrimo: è un tool che usiamo in ambiente di test per verificare come viene utilizzata la sessione nelle applicazioni (e funziona appunto iniettando un getSession custom sull'implementazione della servlet di websphere).
Il tuo e' un nobile intento, ma pare che i droidi dell'IBM la pensino in maniera diversa ...
Non e' che offrono gia' loro qualcosa sotto forma di JMX ?
Pero' dai e' strano quel che mi hai detto, ci deve essere un modo o una ragione per venirne a capo !
> Non ci si può fidare delle scimmie ammaestrate e le code review non esistono.
Da quando abbiamo introdotto github con le pull-requests, la qualita' del codice e' migliorata tantissimo.
Niente secca di piu' uno sviluppatore di sentirsi criticare il proprio codice
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: giambinaAllora, ho infilato in una servlet questo pezzo di codice:
public static void findClass(String name) { System.err.println("findClass(" + name + ")"); LinkedList<ClassLoader> classloaders = getClassLoaders(); for (ClassLoader cl : classloaders) { try { System.err.println("CLASS LOADER: "+cl); cl.loadClass(name); System.err.println(">>>> TROVATA"); } catch (ClassNotFoundException e) { System.err.println(">>>> NON TROVATA"); } } } private static LinkedList<ClassLoader> getClassLoaders() { LinkedList<ClassLoader> classloaders = new LinkedList<ClassLoader>(); ClassLoader current = Thread.currentThread().getContextClassLoader(); do { classloaders.addFirst(current); current = current.getParent(); } while (current != null); return classloaders; }
e richiamato poi nel corpo del doGetfindClass("javax.servlet.http.HttpSession")
Il risultato:[28/09/16 8.46.05:274 CEST] 00000016 SystemErr R findClass(javax.servlet.http.HttpSession) [28/09/16 8.46.05:274 CEST] 00000016 SystemErr R CLASS LOADER: sun.misc.Launcher$ExtClassLoader@7c207c20 [28/09/16 8.46.05:274 CEST] 00000016 SystemErr R >>>> NON TROVATA [28/09/16 8.46.05:274 CEST] 00000016 SystemErr R CLASS LOADER: sun.misc.Launcher$AppClassLoader@3e4e3e4e [28/09/16 8.46.05:275 CEST] 00000016 SystemErr R >>>> NON TROVATA [28/09/16 8.46.05:275 CEST] 00000016 SystemErr R CLASS LOADER: org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@5f965f96 [28/09/16 8.46.05:275 CEST] 00000016 SystemErr R >>>> TROVATA [28/09/16 8.46.05:275 CEST] 00000016 SystemErr R CLASS LOADER: com.ibm.ws.bootstrap.ExtClassLoader@5fd25fd2 [28/09/16 8.46.05:275 CEST] 00000016 SystemErr R >>>> TROVATA [28/09/16 8.46.05:275 CEST] 00000016 SystemErr R CLASS LOADER: com.ibm.ws.classloader.ProtectionClassLoader@5b215b21 [28/09/16 8.46.05:276 CEST] 00000016 SystemErr R >>>> TROVATA [28/09/16 8.46.05:276 CEST] 00000016 SystemErr R CLASS LOADER: com.ibm.ws.classloader.CompoundClassLoader@70ba70ba[app:TestCache] Local ClassPath: Parent: com.ibm.ws.classloader.ProtectionClassLoader@5b215b21 Delegation Mode: PARENT_FIRST [28/09/16 8.46.05:276 CEST] 00000016 SystemErr R >>>> TROVATA [28/09/16 8.46.05:276 CEST] 00000016 SystemErr R CLASS LOADER: com.ibm.ws.classloader.CompoundClassLoader@72667266[war:TestCache/TestCacheWeb.war] Local ClassPath: C:\RAD\workspace6\TestCacheWeb\WebContent\WEB-INF\classes;C:\RAD\workspace6\TestCacheWeb\WebContent Parent: com.ibm.ws.classloader.CompoundClassLoader@70ba70ba[app:TestCache] Delegation Mode: PARENT_FIRST [28/09/16 8.46.05:276 CEST] 00000016 SystemErr R >>>> TROVATA
Quindi mi trovo a due classloader di distanza dal DefaultClassLoader che mi carica la classe.
Oggi mi cerco un po' di info sui connettori jmx di was.Young professional woman and busy mom.-
Re: giambinaScritto da: ::1
E' la seconda volta in vita mia che vedo un do { ... } while ( ... ) in Java
Mi ricordo che quando c'erano problemi di class loading, $tizioCiccione diceva di switchare il flag PARENT_FIRST
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
-
-
-
Re: giambinaScritto daWakko WarnerWakkus Horribilisil 2016-09-27 19:21:23.0 alle 2016-09-27 19:21:23.0Trollate totali: 6779Scritto da: ::1
> Scritto da: Giambo
> > Scritto da: ::1
> > > Ho un scritto un javaagent eoni fa per wesphere 6.1, che via javassist wrappa le request; ora questo non funziona sotto websphere 7.0 perché nel system classloader dove viene caricato l'agent non sono più visibili le classi j2ee (javax.servlet.http nel mio caso).
> > > Che fare?
> >
> > Da quando ho abbandonato l'UBS, ho bevuto tanto alcool col preciso intento di dimenticare WebSphere.
> > Pero' la tua situazione non mi pare particolare, sicuro che su stackoverflow qualcuno non ha avuto un problema simile ?
>
> Non trovo niente, o forse sbaglio keyword. L'alternativa è copiare in lib/ext il jar delle api, ma se hanno architettato diversamente i classloader non vorrei spaccare qualcos'altro.
C#
Gli Svizzeri non sono tutti ricchi - Mattia
-
-
-