Thank you, Sebastien!
--
Bongjae Chang
----- Original Message -----
From: Survivant 00
To: dev_at_grizzly.dev.java.net
Sent: Monday, August 31, 2009 11:24 PM
Subject: Re: servlet-mapping didn't work well in GrizzlyWebServerDeployer
ah ah ah..  no idea how this one pass all our tests :(
in the log :
[main] Mon Aug 31 10:22:17 EDT 2009 [LE PLUS FIN] com.sun.grizzly.http.servlet.d
eployer.GrizzlyWebServerDeployer deploy:sa alias=[/simple_war/simple_servlet/simple_servlet/*]
java -Djava.util.logging.config.file=C:/source/logging.properties -jar grizzly-http-servlet-deployer-1.9.18-SNAPSHOT.jar --application=c:\temp\simple_war.war
the sevlet respond but with this URL :
http://localhost:8080/simple_war/simple_servlet/simple_servlet
I'll fill a bug and fix this.
2009/8/31 Bongjae Chang <carryel_at_korea.com>
I attached the test web app(simple_war.war).
Â
The simple_war.war includes web.xml, SimpleServlet.java and SimpleServlet.class.
Â
web.xml is here.
---
<web-app>
  <servlet>
     <servlet-name>SimpleServlet</servlet-name>
     <servlet-class>SimpleServlet</servlet-class>
     ...
  </servlet>
  <servlet-mapping>
     <servlet-name>SimpleServlet</servlet-name>
     <url-pattern>/simple_servlet/*</url-pattern>
  </servlet-mapping>
</web-app>
---
Â
I ran the application with JDK6 on Windows like this:
Â
---
java -jar grizzly-http-servlet-deployer.jar --application=c:\simple_war.war --port=8080
Â
or
Â
java -cp grizzly-http-servlet-deployer.jar com.sun.grizzly.http.servlet.deployer.GrizzlyWebServerDeployer --application=c:\simple_war.war --port=8080
---
Â
And I requested "
http://localhost:8080/simple_war/simple_servlet" or "
http://localhost:8080/simple_war/simple_servlet/abc" with IE6.
Â
I think that the browser should print "Hello, SimpleServlet!".
Â
And I think that you can reproduce it easily with the attached .war.
Â
Thanks!
Â
--
Bongjae Chang
Â
Â
----- Original Message -----
From: Survivant 00
To: dev_at_grizzly.dev.java.net
Sent: Monday, August 31, 2009 10:27 PM
Subject: Re: servlet-mapping didn't work well in GrizzlyWebServerDeployer
thanks.
2009/8/31 Bongjae Chang <carryel_at_korea.com>
Hi Sebastien,
ÂÂ
Okay! I will try to make a simple .war for reproducing this issue in a few hours and will attach it.
ÂÂ
Thanks!
--
Bongjae Chang
ÂÂ
ÂÂ
----- Original Message -----
From: Survivant 00
To: dev_at_grizzly.dev.java.net
Sent: Monday, August 31, 2009 9:41 PM
Subject: Re: servlet-mapping didn't work well in GrizzlyWebServerDeployer
will try that on debug tonight.
the mapping doesn't look special. I think grizzly-twitter have the same things.. /words/  something like that.
I'll check.
can you package a .war that I can test. Will be easier to test.. with the command line you use please.
2009/8/31 Bongjae Chang <carryel_at_korea.com>
Hi Sebastien,
ÂÂÂ
Thank you for your reply.
ÂÂÂ
I think that maybe your last reply is concerned about the following.
ÂÂÂ
---
  if (appliPath != null && appliPath.endsWith(File.pathSeparator)) {
     appliPath = appliPath + File.pathSeparator;
  }
---
I see...
ÂÂÂ
But, I think that definately, the following code is not correct.
ÂÂÂ
---
mapping = urlPattern.substring(urlPattern.indexOf(sa.getServletPath()));
---
ÂÂÂ
After you will review it, please let me know. :)
ÂÂÂ
Thanks!
ÂÂÂ
--
Bongjae Chang
ÂÂÂ
ÂÂÂ
----- Original Message -----
From: Survivant 00
To: dev_at_grizzly.dev.java.net
Sent: Thursday, August 27, 2009 6:59 PM
Subject: Re: servlet-mapping didn't work well in GrizzlyWebServerDeployer
it's to early in the morning to think about it.. will come back to you later.
but here what's in the help
-a, --application=[path]* Application(s) path(s). Application(s) deployed can be :
Servlet(s), war(s) and expanded war folder(s). To deploy multiple applications use File.pathSeparator Example : -a /app.war:/servlet/web.xml:/warfolder/
2009/8/27 Bongjae Chang <carryel_at_korea.com>
Hi,
ÂÂÂ
I deployed an web application with using GrizzlyWebServerDeploy, I found that the Servlet is not served because of wrong path mapping.
ÂÂÂ
Here is the example of web.xml
---
<web-app>
<servlet>
  <servlet-name>TestServlet</servlet-name>
  <servlet-class>my.test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>TestServlet</servlet-name>
  <url-pattern>/test/*</url-pattern>
</servlet-mapping>
...
</web-app>
---
ÂÂÂ
Assuming that context path is "/example",
ÂÂÂ
When I requested
http://localhost:port/examples/test/abc, I expected that the TestServlet was serviced.
ÂÂÂ
When I debugged, I found some strange codes.
ÂÂÂ
In GrizzlyWebServerDeploy.java
---
public String[] getAlias(ServletAdapter sa, Collection<String> aliases) {
  ...
  for( String urlPattern : aliases) {
     String mapping = "";
     if (!sa.getServletPath().equals(urlPattern) && urlPattern.indexOf(sa.getServletPath()) > -1) {
        mapping = urlPattern.substring(urlPattern.indexOf(sa.getServletPath()));
     }
     String aliasTmp = sa.getContextPath() + sa.getServletPath() + mapping;
  }
  ...
}
ÂÂÂ
When I deployed the web app, sa.getServletPath() is equal to "/test" and urlPattern is equal to "/test/*".
ÂÂÂ
Then mapping result is equal to "/test/*" , so aliasTmp result is equal to "/example/test/test/*".
ÂÂÂ
But I think that aliasTmp should become to be "/examples/test/*".
ÂÂÂ
When I edited the mapping code like this experimentally,
ÂÂÂ
---
mapping = urlPattern.subString(urlPattern.indexOf(sa.getServletPath()) + sa.getServletPath().length());
---
ÂÂÂ
I could know that my test servlet is served well.
ÂÂÂ
Could you please review this?
ÂÂÂ
ÂÂÂ
And I saw another strange code. This is trivial.
ÂÂÂ
In GrizzlyWebServerDeployer.java
---
public String appendWarContentToClassPath(String appliPath) throw ... {
  ...
  if (appliPath != null && appliPath.endsWith(File.pathSeparator)) {
     appliPath = appliPath + File.pathSeparator;
  }
}
---ÂÂÂ
File.pathSeparator is equal to ";" in Windows.
ÂÂÂ
Perhaps you mean File.separator "/" or "\". Is it right?
ÂÂÂ
Then, the proposed patch is here.
---
public String appendWarContentToClassPath(String appliPath) throw ... {
  ...
  if (appliPath != null && !appliPath.endsWith(File.separator)) {
     appliPath = appliPath + File.separator;
  }
}
---ÂÂÂ
ÂÂÂ
Is also Right? But, I am not sure. :)
ÂÂÂ
Thanks!
ÂÂÂ
--
Bongjae Chang
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
For additional commands, e-mail: dev-help_at_grizzly.dev.java.net