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]>
