Dear all,

I am writing a custom protocol handler to process the URL like
'cid:Test-2001-12-27-13-01'. I have implemented the Handler and
CidURLConnection classes to parse and process the URL. It works fine in
stand alone application and JRun servlet container.
When I test it in Tomcat, I got problem with unrecognizing the protocol.


1)My setup:
  Platform: Windows 2000
  Java version: JDK1.4
  Tomcat Version: 4.0.1 stand alone
  
2)I started Tomcat adding system property setup 
-Djava.protocol.handler.pkgs=com.btrade.ebxml.protocols. In the calling
servlet, I could retrieve the system property. 
But Tomcat cannot recognize the protocol because I got the
MalformedURLexception. Here is part of the log information:

///////////////////////////////////////////////////////////////////
01-12-27-10-39-02 ebxml : catalina.base = C:\jakarta-tomcat-4.0.1
01-12-27-10-39-02 ebxml : catalina.home = C:\jakarta-tomcat-4.0.1
01-12-27-10-39-02 ebxml : java.protocol.handler.pkgs =
com.btrade.ebxml.protocols|com.sun.net.ssl.internal.www.protocol
java.net.MalformedURLException: unknown protocol: cid
        at java.net.URL.<init>(URL.java:576)
        at java.net.URL.<init>(URL.java:467)
        at java.net.URL.<init>(URL.java:416)
        at com.btrade.ebxml.CidURLTest.open(CidURLTest.java:10)
        at ebxml.init(ebxml.java:70)
        at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:85
2)
        at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.jav
a:615)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:201)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2344)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:164)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
462)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:163)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1011)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1106)
        at java.lang.Thread.run(Thread.java:539)
01-12-27-10-39-02 ebxml : doGet()

///////////////////////////////////////////////////////////

Part of servlet source code like following:

public class ebxml extends HttpServlet implements SingleThreadModel
{   
       
     static EventTrace eventTrace = null;  
    
        public void init (ServletConfig config)throws ServletException {

          try {
                super.init(config);
                
                String logFile =  config.getInitParameter("logPath");
                if(logFile != null)
                  eventTrace = new EventTrace(logFile);
                else
                  eventTrace = new EventTrace();
                   
                 
                eventTrace.log("catalina.base = " +
System.getProperty("catalina.base"), "ebxml");
                eventTrace.log("catalina.home = " +
System.getProperty("catalina.home"), "ebxml");
                eventTrace.log("java.protocol.handler.pkgs = " +
System.getProperty("java.protocol.handler.pkgs"), "ebxml");
                
 
/*******************************************************/
                /* test Cid URL */
                CidURLTest.open("cid:PL2001-12-26-10-38-16-06721";);
             
          } catch(Exception e) { e.printStackTrace(); }
        }
        
        public void doGet(HttpServletRequest req, HttpServletResponse
res) throws ServletException, IOException 
        {
                eventTrace.log("doGet()", "ebxml");
                res.setContentType("text/html");
                PrintWriter out = res.getWriter();
                String title = "bTrade ebxml receiver";
                out.println("<html>\n" + 
                            "Welcome to bTrade ebxml receiver. Please
post your data. Thanks.\n" +
                            "</html>");
                out.close();
        }

       ...
}

////////////////////////////////////////////////////////////////////////
////////////////////////////////////

Can anybody give me some help?

Thanks in advance,

-Wei
-----------------------------------------------------
Wei Wang
bTrade, Inc
2324 GateWay Dr,
Irving, TX 75063
972-580-2948
[EMAIL PROTECTED]
-----------------------------------------------------


--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to