Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Jetty/Troubleshooting"
Line 2: | Line 2: | ||
== Big Problems == | == Big Problems == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Jetty FAQ | {{Jetty FAQ | ||
| question = Why isn't my application/servlet/content served? | | question = Why isn't my application/servlet/content served? | ||
− | | answer = | + | | answer = If you think your application is running, but you get a 404 response, make sure that you have correctly [[Jetty/Howto/SetContextPath|set the context path]]. |
− | + | ||
− | + | ||
− | Jetty/Howto/SetContextPath | + | |
+ | If you are clicking a link to access the application, then make sure you have not got a relative URL problem. Remember that a link to foo/bar on a page at /myapp/page will go to /myapp/foo/bar. If you want it to go to /myapp/page/foo/bar then you must make sure the browser is redirected from /myapp/page to /myapp/page/ | ||
+ | If you still cannot get your content, look in the requestlog to see the exact URL that is being requested. | ||
}} | }} | ||
Line 50: | Line 43: | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Jetty FAQ | {{Jetty FAQ | ||
Line 73: | Line 56: | ||
}} | }} | ||
+ | |||
+ | |||
+ | == Logs and Warnings == | ||
+ | |||
+ | {{Jetty FAQ | ||
+ | | question = Why do I get JVM Bugs reported? | ||
+ | | answer = Yes! | ||
+ | There are several NIO bugs in the JVM (specially for linux) that will not be fixed in the 1.6.x series. Jetty has implemented a number of [[Jetty/Feature/JVM_NIO_Bug|JVM NIO Bug work arounds]] that keep a jetty server working efficiently in the presence of these problems. | ||
+ | }} | ||
== Saving == | == Saving == |
Revision as of 00:20, 24 March 2011
Contents
Big Problems
Why isn't my application/servlet/content served?
If you are clicking a link to access the application, then make sure you have not got a relative URL problem. Remember that a link to foo/bar on a page at /myapp/page will go to /myapp/foo/bar. If you want it to go to /myapp/page/foo/bar then you must make sure the browser is redirected from /myapp/page to /myapp/page/
If you still cannot get your content, look in the requestlog to see the exact URL that is being requested.
Jetty has locked up?
You can test if the JVM has locked up completely by trying to use a tool like jconsole or jvisualvm to attach to the process. If you cannot attach to the process, the it is likely something has gone wrong with the JVM and/or operating system rather than Jetty itself.
If you can attach to the JVM with jconsole and/or jvisualvm, then look to see how many threads are allocated and what task they are doing. A frequent cause of such "lockups" is a slow database so that all the threads in the thread pool end up waiting for a JDBC connection from the connection pool.
You can test if Jetty is completely locked up by trying some simple requests and seeing if they are get a response. Hitting http://thehost.com/favicon.ico or some other image directly is often a good way to see if jetty is still running. If it is, then try some simple requests within the application that will use minimal features (no authentication, no database etc.) and see if any of those requests work.
Finally telnet can be used as a fake HTTP client to see if connections are being accepted. If you telnet to the port (eg 80 or 8080) and you see a "Connected to www.example.com" message, then Jetty is still accepting connections. Then try typing a request like "OPTION * HTTP/1.0" and hit Enter twice to see if you get a HTTP response. eg
# telnet blogs.webtide.com 80 Trying 72.32.76.94... Connected to blogs.webtide.com. Escape character is '^]'. OPTION * HTTP/1.0 HTTP/1.1 503 Service Unavailable Cache-Control: must-revalidate,no-cache,no-store Content-Type: text/html;charset=ISO-8859-1 Content-Length: 1287 Server: Jetty(7.0.0.v20091005)
Check that the "Server" in the response field is Jetty (and not a load balancer etc.).
Doing tests like these will help narrow down exactly which component has "locked up". Getting a thread dump (with jstack or ctl-\ or jvisualvm) is also invaluable to diagnose what the threads are doing.
JSP support not configured?
If JSP is not correctly configured then each context started will produce an error message like:
INFO::NO JSP Support for /, did not find org.apache.jasper.servlet.JspServletA request to a JSP will generate a 500 response with the message "500 JSP support not configured"
Logs and Warnings
Why do I get JVM Bugs reported?
Saving
Why do I get a "Save could not be completed" error in Eclipse whenever I try to save a file while Jetty is running?
<useFileMappedBuffer>
to false
in webdefault.xml.