Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns rudkus.core
- (:require [clojure.tools.cli :as cli]
- [ring.adapter.jetty :as jetty])
- (:gen-class))
- (defn handler [request]
- {:status 200
- :headers {"Content-Type" "text/html"}
- :body "Hello, World!"})
- (def ^{:private true} server (atom nil))
- (defn start [port]
- (swap! server #(if (not (nil? %))
- (throw (IllegalStateException. "Server already started."))
- (jetty/run-jetty handler
- {:port port
- :join? false}))))
- (defn stop []
- (swap! server #(if (nil? %)
- (throw (IllegalStateException. "Server already stopped."))
- (do (.stop %)
- nil))))
- (defn -main [& args]
- (let [[options extra-args banner] (cli/cli args
- ["-p" "--port" "Port" :default 80 :parse-fn #(Integer. %)])]
- (if (not-empty extra-args)
- (println banner)
- (start (:port options)))))
- lein run
- lein trampoline run
- $ java -jar rudkus-0.1.0-SNAPSHOT-standalone.jar
- 2012-09-09 15:54:59.664:INFO:oejs.Server:jetty-7.x.y-SNAPSHOT
- 2012-09-09 15:54:59.803:WARN:oejuc.AbstractLifeCycle:FAILED SelectChannelConnector@0.0.0.0:80: java.net.SocketException: Permission denied
- java.net.SocketException: Permission denied
- at sun.nio.ch.Net.bind(Native Method)
- at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
- at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
- at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:173)
- at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:311)
- at org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:251)
- at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
- at org.eclipse.jetty.server.Server.doStart(Server.java:272)
- at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
- at ring.adapter.jetty$run_jetty.invoke(jetty.clj:86)
- at rudkus.core$start$fn__16.invoke(core.clj:16)
- at clojure.lang.Atom.swap(Atom.java:37)
- at clojure.core$swap_BANG_.invoke(core.clj:2108)
- at rudkus.core$start.invoke(core.clj:14)
- at rudkus.core$_main.doInvoke(core.clj:31)
- at clojure.lang.RestFn.invoke(RestFn.java:397)
- at clojure.lang.AFn.applyToHelper(AFn.java:159)
- at clojure.lang.RestFn.applyTo(RestFn.java:132)
- at rudkus.core.main(Unknown Source)
- 2012-09-09 15:54:59.806:WARN:oejuc.AbstractLifeCycle:FAILED org.eclipse.jetty.server.Server@6e5dfaf1: java.net.SocketException: Permission denied
- java.net.SocketException: Permission denied
- at sun.nio.ch.Net.bind(Native Method)
- at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
- at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
- at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:173)
- at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:311)
- at org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:251)
- at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
- at org.eclipse.jetty.server.Server.doStart(Server.java:272)
- at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
- at ring.adapter.jetty$run_jetty.invoke(jetty.clj:86)
- at rudkus.core$start$fn__16.invoke(core.clj:16)
- at clojure.lang.Atom.swap(Atom.java:37)
- at clojure.core$swap_BANG_.invoke(core.clj:2108)
- at rudkus.core$start.invoke(core.clj:14)
- at rudkus.core$_main.doInvoke(core.clj:31)
- at clojure.lang.RestFn.invoke(RestFn.java:397)
- at clojure.lang.AFn.applyToHelper(AFn.java:159)
- at clojure.lang.RestFn.applyTo(RestFn.java:132)
- at rudkus.core.main(Unknown Source)
- Exception in thread "main" java.net.SocketException: Permission denied
- at sun.nio.ch.Net.bind(Native Method)
- at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
- at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
- at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:173)
- at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:311)
- at org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:251)
- at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
- at org.eclipse.jetty.server.Server.doStart(Server.java:272)
- at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
- at ring.adapter.jetty$run_jetty.invoke(jetty.clj:86)
- at rudkus.core$start$fn__16.invoke(core.clj:16)
- at clojure.lang.Atom.swap(Atom.java:37)
- at clojure.core$swap_BANG_.invoke(core.clj:2108)
- at rudkus.core$start.invoke(core.clj:14)
- at rudkus.core$_main.doInvoke(core.clj:31)
- at clojure.lang.RestFn.invoke(RestFn.java:397)
- at clojure.lang.AFn.applyToHelper(AFn.java:159)
- at clojure.lang.RestFn.applyTo(RestFn.java:132)
- at rudkus.core.main(Unknown Source)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement