SDIR=`dirname $0`
SWAR=`realpath $SDIR/target/pnews-1.0.war`
-TMP_DIR="/tmp/$$.tmp"
-DWAR="$TMP_DIR/config/apps/pnews-1.0.war"
-mkdir -p $TMP_DIR/config/apps
+if [ -z "$1" ]; then
+ SHARED_DIR="/tmp/$$.tmp"
+else
+ SHARED_DIR="$1"
+fi
+
+SHARED_DIR=`realpath $SHARED_DIR`
+
+echo "SHARED_DIR=$SHARED_DIR"
+
+DWAR="$SHARED_DIR/apps/pnews-1.0.war"
+
+mkdir -p $SHARED_DIR/apps
cp $SWAR $DWAR
-cp server.xml $TMP_DIR/config
+cp server.xml $SHARED_DIR
+cp server.env $SHARED_DIR
-docker run -ti --name pnews -p 9080:9080 -p 9443:9443 -v $TMP_DIR/config:/config websphere-liberty:webProfile7
+docker run -ti --name pnews -p 9080:9080 -p 9443:9443 -v $SHARED_DIR:/opt/ibm/wlp/usr/servers/defaultServer websphere-liberty:webProfile7
--- /dev/null
+WLP_OUTPUT_DIR=/opt/ibm/wlp/usr/servers/defaultServer/output
<server description="Default server">
<logging traceSpecification="pnews.*=FINEST:*=INFO"
consoleLogLevel="INFO"
- logDirectory="/tmp"
+ logDirectory="/opt/ibm/wlp/usr/servers/defaultServer/logs"
maxFileSize="50"
traceFileName="trace.log"
maxFiles="10" />
String path;
InputStream in;
+ RequesterLog.singleton.writeRequest(req);
+
LOG.info("doGet " + req.getRemoteAddr().toString() + " " + req.getRequestURI() + " " + req.getQueryString());
path = req.getPathInfo();
--- /dev/null
+package pnews.servlet;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.servlet.http.HttpServletRequest;
+
+public class RequesterLog {
+ public static final RequesterLog singleton = new RequesterLog();
+ private Writer writer;
+ private Logger LOG = Logger.getLogger(RequesterLog.class.getName());
+
+ public void writeRequest(HttpServletRequest rq) {
+ try {
+ synchronized(this) {
+ if (writer == null)
+ writer = new BufferedWriter(new FileWriter("access.log", true), 1024);
+ }
+
+ synchronized (writer) {
+ writer.write(rq.getRemoteAddr() + " " + rq.getRequestURI() + " " + rq.getQueryString() + "\n");
+ writer.flush();
+ }
+ } catch (IOException e) {
+ LOG.log(Level.SEVERE, "Fails to log requester information", e);
+ }
+ }
+}