Skip to content

Commit

Permalink
Serve static files and embedded servlets
Browse files Browse the repository at this point in the history
  • Loading branch information
tananaev committed Jan 29, 2015
1 parent 75aa9f8 commit 0ee8100
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 14 deletions.
10 changes: 6 additions & 4 deletions default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
<properties>

<!-- Global configuration -->
<!--<entry key='database.driverFile'>/home/user/Documents/traccar/hsqldb.jar</entry>-->
<!--<entry key='database.driverFile'>hsqldb.jar</entry>-->
<entry key='database.driver'>org.h2.Driver</entry>
<entry key='database.url'>jdbc:h2:/home/user/Documents/traccar/target/database</entry>
<entry key='database.url'>jdbc:h2:target/database</entry>
<entry key='database.user'>sa</entry>
<entry key='database.password'></entry>

Expand Down Expand Up @@ -48,7 +48,9 @@
<entry key='http.enable'>true</entry>
<!--<entry key='http.address'></entry>-->
<entry key='http.port'>8082</entry>
<entry key='http.application'>/home/user/Documents/traccar-web/traccar-web.war</entry>
<entry key='http.application'>../traccar-web/traccar-web.war</entry>
<entry key='http.new'>false</entry>
<entry key='http.path'>web</entry>

<!-- Geocoder options -->
<entry key='geocoder.enable'>false</entry>
Expand All @@ -66,7 +68,7 @@
<!-- Logging options -->
<entry key='logger.enable'>true</entry>
<entry key='logger.level'>all</entry>
<entry key='logger.file'>/home/user/Documents/traccar/target/tracker-server.log</entry>
<entry key='logger.file'>target/tracker-server.log</entry>

<!-- Protocol detector -->
<entry key='detector.enable'>true</entry>
Expand Down
58 changes: 48 additions & 10 deletions src/org/traccar/http/WebServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,25 @@
*/
package org.traccar.http;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
import org.traccar.helper.Log;

Expand All @@ -40,17 +53,42 @@ public WebServer(Properties properties, DataSource dataSource) {
server = new Server(new InetSocketAddress(address, port));
}

try {
Context context = new InitialContext();
context.bind("java:/DefaultDS", dataSource);
} catch (Exception error) {
Log.warning(error);
}
if (Boolean.valueOf(properties.getProperty("http.new"))) {

ServletContextHandler servletHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletHandler.setContextPath("/api");
servletHandler.addServlet(new ServletHolder(new HttpServlet() {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out = resp.getWriter();
out.println("<html><body>api</body></html>");
}
}), "/*");

ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setResourceBase(properties.getProperty("http.path"));
resourceHandler.setWelcomeFiles(new String[] {"index.html"});

WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setWar(properties.getProperty("http.application"));
server.setHandler(webapp);
HandlerList handlerList = new HandlerList();
handlerList.setHandlers(new Handler[] {servletHandler, resourceHandler});

server.setHandler(handlerList);

} else {

try {
Context context = new InitialContext();
context.bind("java:/DefaultDS", dataSource);
} catch (Exception error) {
Log.warning(error);
}

WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setWar(properties.getProperty("http.application"));
server.setHandler(webapp);

}
}

public void start() {
Expand Down
6 changes: 6 additions & 0 deletions web/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
file
</body>
</html>

0 comments on commit 0ee8100

Please sign in to comment.