Come cambio la porta predefinita (9000) utilizzata da Play quando eseguo il comando “run”?

Come posso cambiare la porta predefinita utilizzata dal framework di gioco in modalità di sviluppo quando si esegue il comando “run” sulla console di gioco.

Questo è per beta 2.0 playframework.

L’uso del parametro di configurazione http.port sulla riga di comando o nel file application.conf sembra non avere alcun effetto:

C:\dev\prototype\activiti-preso>play run --http.port=8080 [info] Loading project definition from C:\dev\prototype\activiti-preso\project [info] Set current project to activiti-preso (in build file:/C:/dev/prototype/activiti-preso/) Windows, really? Ok, disabling colors. --- (Running the application from SBT, auto-reloading is enabled) --- [error] org.jboss.netty.channel.ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:9000 [error] Use 'last' for the full log. 

Gioca 1.x

Modificare il valore http.port nel file conf/application.conf o passarlo alla riga di comando:

 play run --http.port=8080 

Gioca 2.x

Play 2.x è un plugin sbt quindi i seguenti comandi sono in realtà solo comandi sbt. È ansible utilizzare qualsiasi programma di avvio sbt (ad es. sbt , play o activator ). I comandi seguenti usano il launcher sbt , ma puoi sostituirlo con il tuo programma di avvio sbt di scelta.

Gioca 2.x – Dev Mode

Per la modalità di ricarica del browser:

 sbt "run 8080" 

Per la modalità di ricarica continua:

 sbt "~run 8080" 

Riproduci 2.x – Modalità debug

Per eseguire in modalità di debug con il listener http sulla porta 8080 , eseguire:

 sbt -jvm-debug 9999 "run 8080" 

Riproduci 2.x – Modalità Prod

Inizia in modalità Prod:

 sbt "start -Dhttp.port=8080" 

Gioca 2.x – Distribuzione graduale

Crea una distribuzione graduale:

 sbt stage 

Per Play 2.0.xe 2.1.x utilizzare lo script target/start (solo Unix):

 target/start -Dhttp.port=8080 

Per Play 2.2.xe 2.3.x utilizzare lo script di avvio appropriato nella directory target/universal/stage/bin :

 target/universal/stage/bin/[appname] -Dhttp.port=8080 

Con Play 2.2.xe 2.3.x su Windows:

 target\universal\stage\bin\[appname].bat -Dhttp.port=8080 

Gioca 2.x – Zip Distribution

Per creare una distribuzione zip:

 sbt dist 

Per Play 2.0.xe 2.1.x utilizzare lo script di start (solo Unix) nel file zip estratto:

 start -Dhttp.port=8080 

Per Play 2.2.x usa lo script appropriato nella directory [appname]-[version]/bin :

 [appname]-[version]/bin/[appname] -Dhttp.port=8080 

Con Play 2.2.x su Windows:

 [appname]-[version]\bin\[appname].bat -Dhttp.port=8080 

Gioca a 2.0-RC4

È importante includere le virgolette sul comando di riproduzione che si desidera eseguire. Nel mio caso, senza le virgolette, la riproduzione continuerebbe comunque sulla porta 9000.

 play "run 8080" 

In alternativa puoi eseguire quanto segue dalla console di gioco (digita “play” per accedere alla console)

 run 8080 

Versione 2.0.3 :

  • Vai alla directory del progetto e dì solo play (e niente dopo). Questo aprirà la console di gioco.

  • Quindi, pronuncia 8080 . Questo inizierà la riproduzione sulla porta 8080.

Spero che aiuti.

Per Play 2.2.x su Windows con un file tar distribuibile ho creato un file nella directory root distribuibile chiamata: {PROJECT_NAME} _config.txt e aggiunto:

 -Dhttp.port=8080 

Dove {PROJECT_NAME} deve essere sostituito con il nome del tuo progetto. Quindi ha iniziato lo script {PROJECT_NAME} .bat come al solito nella directory bin \.

Per Play 2.3.x

triggerstore “run -Dhttp.port = 9001”

Spero che questo aiuti qualcuno.

tramite le impostazioni di sbt:

 ... .settings(PlayKeys.playDefaultPort := 8855) ... 

Puoi anche impostare la porta HTTP in .sbtopts nella directory del progetto:

 -Dhttp.port=9001 

Quindi non devi ricordarti di aggiungerlo all’attività di run ogni volta.

Testato con Play 2.1.1.

Gioca a 2.2.0 su Windows

Usando una distribuzione zip (prodotta usando il comando “dist”), l’unico modo in cui ero in grado di cambiare la porta di avvio era impostare prima JAVA_OPTS e poi avviare l’applicazione.

Ad esempio, dalla riga di comando

 set JAVA_OPTS=-Dhttp.port=9002 bin\myapp.bat 

dove myapp.bat è il file batch creato dal comando “dist”.

Quanto segue ignorerebbe sempre il mio parametro http.port e tenterò di avviarlo sulla porta predefinita, 9000

 bin\myapp.bat -Dhttp.port=9002 

Tuttavia, ho notato che questo funziona bene su Linux / OSX, avviando sulla porta richiesta:

 ./bin/myapp -Dhttp.port=9002 

Su Windows forse la riproduzione “Esegui 9001” non funzionerà. Devi modificare il file play.bat. Vedi il biglietto

per Play 2.5.xe Play 2.6.x

 sbt "-Dhttp.port=9002" 

poi

 run 

Non funziona ancora nella versione beta. Verrà aggiunto in una prossima versione.

Con il commit introdotto oggi (25 novembre), è ora ansible specificare un numero di porta subito dopo l’ run o start comandi sbt.

Per esempio

play run 8080 o play start 8080

La riproduzione predefinita è la porta 9000

Dalla console di gioco, è sufficiente digitare eseguire 8888, se si desidera eseguirlo dalla porta 8888.

 play> run 8888 

per giocare 2.5.x

Passaggio 1: Arresta il server netty (se è in esecuzione) utilizzando control + D

Passaggio 2: vai a sbt-dist / conf

Passaggio 3: modifica questo file ‘sbtConfig.txt’ con questo

 -Dhttp.port=9005 

Passaggio 4: avviare il server

Passaggio 5: http: // host: 9005 /

Su Windows, uso un file start.bat come questo:

 java -Dhttp.port=9001 -DapplyEvolutions.default=true -cp "./lib/*;" play.core.server.NettyServer "." 

The -DapplyEvolutions.default = true indica all’evoluzione di applicare automaticamente le evoluzioni senza chiedere conferma. Usare con caucanvas sull’ambiente di produzione, ovviamente …

Play 2.2.1 su Windows supporta una variabile di ambiente PLAY_OPTS. Il file play.bat di Play contiene questa riga:

 java -Dsbt.ivy.home="%~dp0repository" -Dplay.home="%~dp0framework" -Dsbt.boot.properties="%fp%framework/sbt/play.boot.properties" %PLAY_OPTS% -jar "%~dp0framework\sbt\sbt-launch.jar" %* 

quindi per eseguire sulla porta 9002, fare

 set PLAY_OPTS=-Dhttp.port=9002 play run 

Testato con 2.3.7 Play framework. Funziona bene.

 ./{application}/bin/{executable} -Dhttp.port=5000 

Non possiamo cambiare la porta dell’applicazione da Avtivator ma possiamo cambiare dall’triggerstore della riga di comando “~ run 8080”

Ma per eseguire il poeta 9000 dall’triggerstore, è necessario interrompere l’applicazione che utilizza questa porta. Possiamo usare questa applicazione per trovare questo e terminare il processo https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

Dopo questo possiamo correre e avrà successo.

L’ho fatto. sudo è necessario.

 $ sudo play debug -Dhttp.port=80 ... [MyPlayApp] $ run 

EDIT: ho avuto problemi a causa dell’uso di sudo quindi fai attenzione. Alla fine ho ripulito il progetto e non ho più usato quel trucco.

Stiamo usando la versione 2.5.6 di Play.

Per cambiare la porta, andare alla cartella principale del progetto e premere: activator "run 8008" nel prompt dei comandi / terminale.

e questo è tutto.