Wrox Home  
Search P2P Archive for: Go

  Return to Index  

security_java thread: Start tomcat 3.2.4 error for Chapter 11 example.


Message #1 by "Luke Kuang" <klei01@h...> on Sun, 15 Sep 2002 12:52:14
Hi, All;
   I am trying to run the example of chapter 11 (Professional Java 
Security) following the readme.txt file tips. But I met an error when I 
start Tomcat. Following is the details. Could you please give me a hand? 
Thanks a lot.
   My test environment are: Tomcat 3.2.2, Jdk1.3, WIN2000 Professional.
   The StartRmiRegistry.bat, SecureDriver.bat and BankInit.bat are run 
success. 
   At the bottom of this email, there are some tips I investigated try to 
analyze the error.
   Your comments are preciated.

Regards,
Luke

Error:
**********************
2002-09-15 18:10:09 - PoolTcpConnector: setAttribute: 
socketFactory=org.apache.t
omcat.net.SSLSocketFactory - java.lang.NullPointerException
        at java.util.jar.JarVerifier.processEntry(JarVerifier.java:269)
        at java.util.jar.JarVerifier.update(JarVerifier.java:197)
        at java.util.jar.JarFile.initializeVerifier(JarFile.java:248)
        at java.util.jar.JarFile.getInputStream(JarFile.java:310)
        at sun.misc.URLClassPath$4.getInputStream(URLClassPath.java:528)
        at sun.misc.Resource.getBytes(Resource.java:60)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:245)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:120)       
        at org.apache.tomcat.service.PoolTcpConnector.string2SocketFactory
(PoolTcpConnector.java:417)
        at org.apache.tomcat.service.PoolTcpConnector.setAttribute
(PoolTcpConnector.java:289)
        at org.apache.tomcat.service.PoolTcpConnector.setProperty
(PoolTcpConnector.java:321)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.tomcat.util.xml.MethodSetter.end(XmlMapper.java:843)
        at org.apache.tomcat.util.xml.XmlMapper.matchEnd
(XmlMapper.java:391)
        at org.apache.tomcat.util.xml.XmlMapper.endElement
(XmlMapper.java:109)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement
(AbstractSAXParser.java:561)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement
(AbstractXMLDocumentParser.java:217)
        at org.apache.xerces.impl.XMLNamespaceBinder.emptyElement
(XMLNamespaceBinder.java:594)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement
(XMLDTDValidator.java:829)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement
(XMLDocumentFragmentScannerImpl.java:748)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
cher.dispatch(XMLDocumentFragmentScannerImpl.java:1454)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument
(XMLDocumentFragmentScannerImpl.java:333)
        at org.apache.xerces.parsers.StandardParserConfiguration.parse
(StandardParserConfiguration.java:525)
        at org.apache.xerces.parsers.StandardParserConfiguration.parse
(StandardParserConfiguration.java:581)
        at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
        at org.apache.xerces.parsers.AbstractSAXParser.parse
(AbstractSAXParser.java:1157)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.apache.tomcat.util.xml.XmlMapper.readXml(XmlMapper.java:214)
        at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:187)
        at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:235)        


Note:
**********************
   I checks the Tomcat's source codes, and find the function cause above 
error is string2SocketFactory in class PoolTcpConnector:

       private static ServerSocketFactory string2SocketFactory( String 
val) throws ClassNotFoundException, IllegalAccessException, 
InstantiationException {
	Class chC=Class.forName( val ); <-- exception happened here
     	   
	return (ServerSocketFactory)chC.newInstance();
    }

   I did a exmaple file Test.java to test above codes alone and it was run 
well and no exception was throwed, this test result confused me much.
----
import org.apache.tomcat.net.*;

public class Test {
    public static void main(String args[] ) {
	try 
	{
	   Class chC=Class.forName
( "org.apache.tomcat.net.SSLSocketFactory" );
	   ServerSocketFactory ssf = (ServerSocketFactory)chC.newInstance
();
	   System.out.println("init success...");
	} catch(Exception ex ) 
	{
	    ex.printStackTrace();
	}
    }
}

  Return to Index