Thanks Chris for getting back to me on.

I had actually tried to define the value for catalina.home explicitely
in catalina.properties file, but I still can't get this working. 

In catalina.properties file, my "common.loader" entry has 4 paths as
listed below.

common.loader=${catalina.home}/common/classes,${catalina.home}/common/i1
8n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/
lib/*.jar

With this definition, I got the following stacktrace:

2007-09-26 13:53:13,000 ERROR [Thread-6]
rmidispatcher.TCTTaskDispatcherImpl - java.rmi.ServerException:
RemoteException occurred in server thread; nested exception is: 
        java.rmi.UnmarshalException: error unmarshalling arguments;
nested exception is: 
        java.net.MalformedURLException: no protocol:
Files/thirdparty/TOMCAT/common/classes/
        at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
        at sun.rmi.transport.Transport$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
Source)
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown
Source)
        at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown
Source)
        at sun.rmi.server.UnicastRef.invoke(Unknown Source)
        at
com.cisco.ccm.serviceability.tct.tctservice.serviceengine.TCTServiceImpl
_Stub.addTCTTaskDispatcher(Unknown Source)
        at
com.cisco.ccm.serviceability.tct.tctservlet.rmidispatcher.TCTTaskDispatc
herImpl.resetConnection(TCTTaskDispatcherImpl.java:153)
        at
com.cisco.ccm.serviceability.tct.tctservlet.rmidispatcher.TCTTaskDispatc
herImpl$TCTServicePingThread.run(TCTTaskDispatcherImpl.java:408)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments;
nested exception is: 
        java.net.MalformedURLException: no protocol:
Files/thirdparty/TOMCAT/common/classes/
        at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
        at sun.rmi.transport.Transport$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
Source)
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.net.MalformedURLException: no protocol:
Files/thirdparty/TOMCAT/common/classes/
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)
        at sun.rmi.server.LoaderHandler.pathToURLs(Unknown Source)
        at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)
        at java.rmi.server.RMIClassLoader$2.loadClass(Unknown Source)
        at java.rmi.server.RMIClassLoader.loadClass(Unknown Source)
        at sun.rmi.server.MarshalInputStream.resolveClass(Unknown
Source)
        at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
        at java.io.ObjectInputStream.readClassDesc(Unknown Source)
        at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
        at java.io.ObjectInputStream.readObject0(Unknown Source)
        at java.io.ObjectInputStream.readObject(Unknown Source)
        at sun.rmi.server.UnicastRef.unmarshalValue(Unknown Source)
        ... 7 more

If I replace "${catalina.home}" with "C:/Program~1/thirdparty/TOMCAT"
for the first path, I'll get MalformedURLException exception again for
the second path. If I made the same change for the first 2 paths, I'll
get the same exception complaining about the third path.  If I do this
for the first 3 paths, the same exception points to the last path.

When I made the same change for all 4 paths, Tomcat failed to start. I
got the following error in catalina.* log:

Sep 25, 2007 9:59:23 AM org.apache.tomcat.util.digester.Digester
startElement
SEVERE: Begin event threw error
java.lang.NoClassDefFoundError: org/apache/naming/TransactionRef
        at
org.apache.catalina.core.StandardServer.<init>(StandardServer.java:92)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
Source)
        at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at
org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.
java:205)
        at org.apache.tomcat.util.digester.Rule.begin(Rule.java:152)
        at
org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1275
)
        at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElemen
t(Unknown Source)
        at
com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement
(Unknown Source)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.s
canStartElement(Unknown Source)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDi
spatcher.scanRootElementHook(Unknown Source)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$F
ragmentContentDispatcher.dispatch(Unknown Source)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.s
canDocument(Unknown Source)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unkn
own Source)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unkn
own Source)
        at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
Source)
        at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unkno
wn Source)
        at
org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:489)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:523)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:266)
        at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)


One more thing: I don't see any of the above exceptions if I don't
deploy my servlet that uses RMI. Other servlets that are not using RMI
seem to work fine. I'm not sure if this issue is triggered when RMI is
used within Tomcat and when Tomcat is installed under a directory with
spaces.  The postings I found mentioned the use of RMI.

- Jeffrey Nguyen

-----Original Message-----
From: Christopher Schultz [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 26, 2007 6:53 AM
To: Tomcat Users List
Subject: Re: java.net.MalformedURLException: no protocol:
Files/thirdparty/TOMCAT/common/classes/

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jeffrey,

Jeffrey Nguyen (jeffrngu) wrote:
> common.loader=${catalina.home}/common/classes,${catalina.home}/common/
> i1 
> 8n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/commo
> n/
> lib/*.jar
>
> where "catalina.home" is resolved to "C:/Program 
> Files/thirdparty/TOMCAT"
>
> I did some Google search and found some postings similar to the ones 
> listed below.  They seem to suggest that I would run into this problem

> if Tomcat was installed under a directory with spaces in it.

Yes, for some reason spaces in path names are frequently the cause of
lots of head-scratching. I'm not sure if it's strictly a win32 issue or
not, but a lot of win32 folks seem to have this problem.

Something you could try is explicitly setting the value of the
CATALINA_HOME environment variable, and be sure to use the
8.3-equivalent of the path for the value. For instance:

set CATALINA_HOME=C:\PROGRA~1\thirdparty\TOMCAT
%CATALINA_HOME%\bin\startup.bat

I realize you might be using Tomcat as a service, so you'll have to
figure out how to get the same effect with the service launcher thing.
Another option, of course, is to install Tomcat into a directory with no
spaces in the path.

Hope that helps,
- -chris

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG+mRH9CaO5/Lv0PARAmCJAKCnwaMZ0hFXxHubkPLsUk0z8s3/KACdHN5d
/aLUm/nhKsFfDTZ2JxSFFKE=
=N4rL
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to