You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Wei Wang <ww...@bTrade.com> on 2001/12/27 18:08:02 UTC
custom protocol handler problem in Tomcat4.0.1
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
wwang@btrade.com
-----------------------------------------------------
--
To unsubscribe: <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>