Я практикую учебник Clojure "Основы веб-разработки" http://clojure -doc.org / Articles / Tutorials / basic_web_development.html
В конце концов, я столкнулся с проблемой,Когда я выполняю
$ java -jar target/clojure-webapp-0.1.0-SNAPSHOT-standalone.jar 8080
, происходит ошибка
Exception in thread "main" java.io.FileNotFoundException: 8080 (No such file or directory)
Таким образом, номер порта анализируется как имя файла файла, который не может быть найден.
IЯ не знаком с Java, но я думаю, что ситуация ясна.Номер порта - это типичный параметр функции, а не имя файла.Пожалуйста, объясните мне это и скажите, как это исправить.Подробнее:
s@lokal:~/Dropbox/clojure-webapp$ lein uberjar
Created /home/s/Dropbox/clojure-webapp/target/clojure-webapp-0.1.0-SNAPSHOT.jar
Created /home/s/Dropbox/clojure-webapp/target/clojure-webapp-0.1.0-SNAPSHOT-standalone.jar
s@lokal:~/Dropbox/clojure-webapp$ cat ~/Dropbox/clojure-webapp/src/clojure_webapp/handler.clj
(ns clojure-webapp.handler
(:require [clojure-webapp.views :as views]
[compojure.core :refer :all]
[compojure.route :as route]
[ring.adapter.jetty :as jetty]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]])
(:gen-class))
(defroutes app-routes ; replace the generated app-routes with this
(GET "/"
[]
(views/home-page))
(GET "/add-location"
[]
(views/add-location-page))
(POST "/add-location"
{params :params}
(views/add-location-results-page params))
(GET "/location/:loc-id"
[loc-id]
(views/location-page loc-id))
(GET "/all-locations"
[]
(views/all-locations-page))
(route/resources "/")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
(defn -main
[& [port]]
(let [port (Integer. (or port
(System/getenv "PORT")
5000))]
(jetty/run-jetty #'app {:port port
:join? false})))
s@lokal:~/Dropbox/clojure-webapp$ java -jar target/clojure-webapp-0.1.0-SNAPSHOT-standalone.jar 8080
Exception in thread "main" java.io.FileNotFoundException: 8080 (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
at clojure.lang.Compiler.loadFile(Compiler.java:7449)
at clojure.main$load_script.invokeStatic(main.clj:278)
at clojure.main$script_opt.invokeStatic(main.clj:338)
at clojure.main$script_opt.invoke(main.clj:333)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
s@lokal:~/Dropbox/clojure-webapp$