Link to home
Start Free TrialLog in
Avatar of pleasure
pleasure

asked on

Calling a servlet from java program...

hi,
I'm using JRUN 3.0 as my app. server, I have class called DBManager which will handle transaction to database server. My servlet can work correctly with this class but when i call this class from my java program, it'won't work...

The error occured in my contructor which is look like below.

public DBManager(String disDsn) throws Exception {
  dataSourceName = disDsn;
  initialcontext = new InitialContext();
  disDataSource = (DataSource)initialcontext.lookup       ("java:comp/env/jdbc/" + disDsn);
}

when i init this class from my java program, i got this error message :
<<Need to specify class name in environment or system property, or as an applet parameter, or in an appication resource file:  java.naming.factory.initial>>

please guide.. FYI, i'm new in java...:-)

thanks for your time..
Avatar of pepenieto
pepenieto

When you create a new InitialContext from outside your application server, you must pass as parameter a hashtable with the parameters:
  - Context.PROVIDER_URL (connection url to your app server)
  - Context.SECURITY_PRINCIPAL (login to your app server)
  - Context.SECURITY_CREDENTIALS (password to your app server)
  - Context.INITIAL_CONTEXT_FACTORY (the class of your app server that implements the context factory)
Avatar of pleasure

ASKER

hi pepenieto,
thanks for your response, as i said before..i'm new in java..can u explain more about your solution...:) or is there any link for me so that i can study about it...

thanks again..
ASKER CERTIFIED SOLUTION
Avatar of pepenieto
pepenieto

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
hi pepenieto,
i'm trying out your solution.. let you know the outcome later... thanks anyway...
hi,
i try another approach to call servlet..
i found this code from other question posted here...
The code is as follow..
/*****************************/
ObjectInputStream is;
URL url;
HashMap hash = new HashMap();    
try {
 url = new URL("http://myserv/myApp/servlet/HelloServlet");
 URLConnection urlConn = url.openConnection();
 is = new ObjectInputStream(url.openStream());
 hash = (HashMap) is.readObject();
 System.out.println(hash);
} catch (Exception e) {
 e.printStackTrace(System.err);
}
/*****************************/

but when i run this java program, i got error
<<
java.io.StreamCorruptedException: InputStream does not contain a serialized object
        at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
        at java.io.ObjectInputStream.<init>(Unknown Source)
        at SDataExtraction.main(SDataExtraction.java:59)
>>

can anyone tell me why?? thanks