I wrote the OracleLoadJava task. I just have not got
around to submitting it.
I wanted to write a whole set of PL/SQL-JBoss services
so I figured I would just load the whole JBoss client
dir, but I also noticed a large number of invalid
classes.
I think we just have to ramp up the complexity of the
calls and track what's needed where and for what. I
will start docuemnting what you have here and we
should compare notes periodically, and I'll put them
on a wiki somewhere.
Agreed ?
//Nicholas
--- Guy Rouillier <[EMAIL PROTECTED]> wrote:
> Nicholas, I finally got around to trying this, and
> it works - thanks! I
> struggled with this for about 6 months and got
> nowhere (including
> working with someone inside Oracle!) I had to go
> through several
> iterations and fix missing permissions identified in
> udump. I really
> should delete all Java permissions and start from
> scratch to identify
> exactly what is needed; I have a bunch already in
> there from when I
> tried the last time. A couple of points/questions:
>
> (1) Where did you find the OracleLoadJava task for
> Ant?
>
> (2) I loaded all JBoss-3.2.1/client jars *except*
> jbossall-client.jar
> (figuring it was redundant). Again, I'll probably
> start from scratch to
> see if I can pare down what is needed. After
> recompiling the INVALID
> classes, I'm still showing 488 classes that are
> marked INVALID. Many of
> them look pretty fundamental (i.e., necessary), so
> I'm wondering once we
> move beyond a trivial example if this will continue
> to work.
>
> (3) Your steps say to recompile these INVALID
> classes. I found that the
> following accomplishes the same thing, and gets done
> much faster:
>
> - First, load all the jar files without resolving.
> Don't know how to do
> this in Ant, but from a command line you can do it
> like this:
>
> call loadjava -user GUYR/[EMAIL PROTECTED]
> concurrent.jar
>
> - Then make a second pass through all the jars, this
> time invoking the
> resolver. This looks like this:
>
> call loadjava -resolve -resolver "((* GUYR)
> (* PUBLIC))" -user
> GUYR/[EMAIL PROTECTED] concurrent.jar
>
> Nicholas wrote:
> > I went back to reproducs this, and the process was
> > this using
> > Windows XP Professional
> > JBoss jboss-3.2.0_tomcat-4.1.24
> > Oracle Enterprise Version 9.2.0.1.0
> >
> > 1. LoadJava the entire JBoss Client Jar collection
> > into SCOTT.
> > <project name="OracleLoadJavaExample"
> default="all"
> > basedir=".">
> > <taskdef name="OracleLoadJava"
> >
>
classname="org.apache.tools.ant.taskdefs.optional.oraclejava.OracleLoadJava"/>
> > </target>
> > <target name="all">
> > <patternset id="all.jars">
> > <include name="**/*.jar"/>
> > </patternset>
> > <OracleLoadJava oci="on" user="SCOTT/[EMAIL PROTECTED]"
> > resolve="on" debug="on" force="no" noverify="on"
> > verbose="on" noserverside="on" schema="scott"
> > synonym="on" time="on">
> > <fileset
> dir="C:/jboss-3.2.0_tomcat-4.1.24/client">
> > <patternset refid="all.jars"/>
> > </fileset>
> > </OracleLoadJava>
> > </target>
> > </project>
> >
> > 2. Recompile all the invalid classes. To do this,
> > generate a script with this SQL logged in as
> SCOTT:
> >
> > select 'ALTER JAVA CLASS SCOTT."' || object_name
> || '"
> > COMPILE;' from USER_OBJECTS where object_type in
> > ('JAVA CLASS', 'JAVA SOURCE') and status =
> 'INVALID'
> >
> > Run the script that is generated.
> >
> > 3. Grant the following rights to SCOTT:
> >
> > dbms_java.grant_permission( 'SCOTT',
> > 'SYS:java.net.SocketPermission', '<IP
> ADDRESS>:1024-',
> > 'listen,resolve' );
> > dbms_java.grant_permission( 'SCOTT',
> > 'SYS:java.net.SocketPermission', '<IP
> ADDRESS>:3495',
> > 'connect,accept,resolve' );
> > dbms_java.grant_permission(
> >
>
'SCOTT','SYS:java.lang.RuntimePermission','org.jboss.security.SecurityAssociation.getPrincipalInfo',
> > '' );
> > dbms_java.grant_permission(
> > 'SCOTT','SYS:java.io.SerializablePermission',
> > 'enableSubstitution', '' );
> > dbms_java.grant_permission( 'SCOTT',
> > 'SYS:java.net.SocketPermission','<IP
> ADDRESS>:8093',
> > 'connect,resolve' );
> >
> > There may be some extra ones in there. I was also
> > trying to communicate with some JMS processes, but
> > generally, Oracle will tell you exactly which
> > permissions you need in the error message if you
> fail
> > to have one.
> >
> > 3. Load EJB. Again, I used the Ant task and loaded
> the
> > JAR I deployed to JBoss and a simple test client
> of a
> > simple EJB:
> >
> > EJB:
> >
> > import javax.ejb.*;
> > public class StringLibBean implements SessionBean
> {
> > SessionContext sessionContext;
> > public void ejbCreate() throws CreateException {
> > }
> > public void ejbRemove() {
> > }
> > public void ejbActivate() {
> > }
> > public void ejbPassivate() {
> > }
> > public void setSessionContext(SessionContext
> > sessionContext) {
> > this.sessionContext = sessionContext;
> > }
> > public String reverse(java.lang.String a) {
> > return new
> StringBuffer(a).reverse().toString();
> > }
> > }
> >
> >
> > Client Code:
> >
> > public static String reverse(String ejbName,
> String
> > message) {
> > System.out.println("reverse(" + ejbName + ","
> +
> > message + ");");
> > try {
> > if(ctx==null) {
> > ctx = getJBossContext();
> > System.out.println("Aha! Connnected To :"
> +
> > ctx.getEnvironment().get(ctx.PROVIDER_URL));
> > }
> > if(home == null) {
> > System.out.println("Looking Up:" +
> ejbName);
> > Object obj = ctx.lookup(ejbName);
> > System.out.println("Found Object Ref:" +
> obj);
> > home = (StringLibHome)obj;
> > System.out.println("Cast to Home");
> > }
> > remote = home.create();
> > String tmp = remote.reverse(message);
> > System.out.println("StringLib.reverse
> Result:" +
> > tmp);
> > return tmp;
> > }
> > catch (Exception ex) {
> > System.err.println("Exception:" + ex);
> > ex.printStackTrace();
> > return null;
> > }
> > }
> > public static Context getJBossContext() throws
> > Exception {
> > Properties p = new Properties();
> > p.put(Context.PROVIDER_URL, "localhost:1099");
> >
> >
>
p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
> > return new InitialContext(p);
> > }
>
=== message truncated ===
=====
Nicholas Whitehead
Home: (973) 377 9335
Cell: (201) 615 2716
[EMAIL PROTECTED]
Get Your News From The Crowbar: http://crowbar.dnsalias.com:443/crowbar/
-------------------------------------------------------
This SF.NET email is sponsored by: eBay
Great deals on office technology -- on eBay now! Click here:
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user