“Çalıştır” komutunu yürüttüğümde Play'in kullandığı varsayılan bağlantı noktasını (9000) nasıl değiştirebilirim?


207

Oyun konsolunda "run" komutunu verirken geliştirme modunda play framework tarafından kullanılan varsayılan bağlantı noktasını nasıl değiştirebilirim?

Bu playframework 2.0 beta içindir.

Http.port yapılandırma parametresini komut satırında veya application.conf dosyasında kullanmanın bir etkisi yok gibi görünüyor:

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.

3
@PereVillega çok komik çünkü doğru: github.com/playframework/playframework/blob/…
Gregory Kalabin

1
"Windows, gerçekten mi?" Windows'uma meslektaşını kullanarak hala bunu yapıp yapmadığını sormak zorunda kaldım. 2.2.0 kullanıyoruz ve artık bu mesajı görüntülemiyor, ancak renkleri devre dışı bırakıyor. Sadece beta sürümünde olduğundan şüpheleniyorum.
Eric Wilson

play.seys.devSettings'i koy: = build.sbt içinde Seq ("play.server.http.port" -> "9001")
Rajat

Yanıtlar:


407

2.x Oynat

Play 2'de bunlar bir sbt eklentisi ile uygulanır, bu nedenle aşağıdaki talimatlar gerçekten sadece sbt görevleridir. Sen kullanabilirsiniz herhangi sbt yolluk (e yılında Play 2, bunlara uygulanan bir sbt eklentisi, şu gerçekten sadece sbt görevler bu yüzden. Herhangi sbt koşucu (örn kullanabilir sbt, playveya activator). Aşağıda sbtkoşucu kullanılır, ancak seçtiğiniz sbt koşucu yerine kullanabilirsiniz.

Play 2.x - Geliştirme Modu

Tarayıcıyı yeniden yükleme modu için:

sbt "run 8080"

Sürekli yeniden yükleme modu için:

sbt "~run 8080"

Play 2.x - Hata Ayıklama Modu

Bağlantı noktasında http dinleyicisi ile hata ayıklama modunda 8080çalıştırmak için, şunu çalıştırın:

sbt -jvm-debug 9999 "run 8080"

Play 2.x - Ürün Modu

Prod modunda başla:

sbt "start -Dhttp.port=8080"

Play 2.x - Aşamalı Dağıtım

Aşamalı dağıtım oluşturma:

sbt stage

Play 2.0.x ve 2.1.x için target/startkomut dosyasını kullanın (Yalnızca Unix):

target/start -Dhttp.port=8080

Play 2.2.x ve 2.3.x için target/universal/stage/bindizinde uygun başlangıç ​​komut dosyasını kullanın :

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

Windows'ta Play 2.2.x ve 2.3.x ile:

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

Play 2.x - Zip Dağıtımı

Bir zip dağıtımı oluşturmak için:

sbt dist

Play 2.0.x ve 2.1.x için start, çıkarılan zip dosyasında (Sadece Unix) komut dosyasını kullanın :

start -Dhttp.port=8080

Play 2.2.x için [appname]-[version]/bindizindeki uygun komut dosyasını kullanın :

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

Windows'ta Play 2.2.x ile:

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

1.x Oynat

Dosyadaki http.portdeğeri değiştirin conf/application.confveya komut satırına iletin:

play run --http.port=8080

İlginçtir ki, aslında işe yaramaz. Ama belki de bu sadece benim sistemimle ilgili bir hata veya sorun.
Boris Terzic

1
Şu anda bunun sadece 1.x için olduğuna inanıyorum, henüz 2.0
beta'da

18
Play 2.0 kullanıyorum. Denediğimde play run 8080hala 9000 üzerinde çalışıyor. Mac'im. Ne oluyor? EDIT: play "run 8080" çalışıyor!
Jay S.

6
@StefanK. Play bağlantı noktasını dinleyene kadar yapılandırma okunmadığından bağlantı noktasını bir Play yapılandırma dosyasına koyamazsınız. Bir env var kullanabilir ve bağlantı noktasını buna ayarlayabilirsiniz.
James Ward

1
@James Aşağıdaki sorunu geçici bir çözümle gönderdim: github.com/sbt/sbt-native-packager/issues/155 . Teşekkürler!
gfournier

33

2.0-RC4 çal

Çalıştırmak istediğiniz oynatma komutunun etrafına tırnak eklemek önemlidir. Benim durumumda tırnak olmadan oyun hala port 9000 üzerinde çalışacaktı.

play "run 8080"

Alternatif olarak, oynatma konsolundan aşağıdakileri çalıştırabilirsiniz (konsola ulaşmak için 'play' yazın)

run 8080

4
Windows üzerinde çalışan insanlar için ikinci seçenek benim için çalıştı (Play 2.0.4 final).
Baztoune

14

Umarım bu birine yardımcı olur.

sbt ayarları ile:

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

1
Bu doğru cevap! Teşekkür ederim! (Benim gibi diğer SBT ve Play acemileri için, .settingssatırı daha build.sbtsonra dosyanıza ekleyin lazy val root = (project in file(".")). SBT ayarları hakkında daha fazla bilgi için buraya bakın: scala-sbt.org/1.0/docs/Custom-Settings.html )
Cameron Hudson

2.7.x oyununda çalışan tek çözüm buldum
Coert Grobbelaar

7

Sürüm 2.0.3 :

  • Proje dizinine gidin ve sadece play (ve bundan sonra hiçbir şey) deyin . Böylece oyun konsolu açılacaktır.

  • Sonra, 8080'i çalıştırın deyin . Bu 8080 numaralı bağlantı noktasında oynamaya başlayacaktır.

Umarım bu yardımcı olur.


5

Dağıtılabilir tar dosyasıyla Windows'ta Play 2.2.x için, dağıtılabilir kök dizinde {PROJECT_NAME} _config.txt adlı bir dosya oluşturdum ve ekledim:

-Dhttp.port=8080

{PROJECT_NAME} adlı projenin yerine projenizin adı yazılmalıdır. Ardından, bin \ dizininde her zamanki gibi {PROJECT_NAME} .bat komut dosyasını başlatın.


pencerelerde (dist ve zip seçeneklerini kullanarak), komut satırı argümanlarını iletmek işe yaramaz (play 2.2.0). Ancak config dosyasında aynı argümanları sağlamak bir cazibe gibi çalışır.
skywalker

5

Windows'ta 2.2.0 oynayın

Bir zip dağıtımı kullanarak ("dist" komutu kullanılarak üretilir), başlangıç ​​bağlantı noktasını değiştirebilmemin tek yolu, önce JAVA_OPTS ayarını yapıp uygulamayı başlatmak oldu.

Örneğin, komut satırından

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

burada myapp.bat "dist" komutu tarafından oluşturulan toplu iş dosyasıdır.

Aşağıdakiler her zaman http.port parametremi yok sayar ve 9000 varsayılan bağlantı noktasında başlatmayı dener

bin\myapp.bat -Dhttp.port=9002

Ancak, bunun istenen bağlantı noktasından başlayarak Linux / OSX'te iyi çalıştığını fark ettim:

./bin/myapp -Dhttp.port=9002


4

HTTP bağlantı noktasını .sbtoptsproje dizininde de ayarlayabilirsiniz :

-Dhttp.port=9001

O zaman runher seferinde göreve eklemeyi hatırlamanız gerekmez .

Play 2.1.1 ile test edildi.



2

Bugün tanıtılan taahhütle (25 Kasım), şimdi runveya startsbt komutlarından hemen sonra bir bağlantı noktası numarası belirtebilirsiniz .

Örneğin

play run 8080 veya play start 8080

Bağlantı noktası 9000'de oynatma varsayılanları


Dakika güncellemeleri için teşekkürler! Bilgilerinizi eklemek için James'in cevabını güncelledim, belki burada kanonik bir cevap oluşturabiliriz.
Boris Terzic

2

Windows'da belki oyun "run 9001" çalışmaz. Play.bat dosyasını değiştirmeniz gerekir. Bilete Bakın


Bu bağlantının kopması durumunda play.bat dosyasının nasıl değiştirileceğini hızlı bir şekilde belirtmek değerli olabilir (ve SO konusunda yardım arayan birine daha hızlı yardım etmek).
Taylor R

2

Oyun konsolundan, 8888 numaralı bağlantı noktasından çalıştırmak istiyorsanız run 8888 yazmanız yeterlidir.

play> run 8888

2

2.5.x oynamak için

Adım 1: Control + D kullanarak netty sunucusunu durdurun (çalışıyorsa)

Adım 2: Sbt-Dist / Conf sayfasına gidin

Adım 3: Bu dosyayı 'sbtConfig.txt' ile düzenleyin

-Dhttp.port=9005

4. Adım: Sunucuyu başlatın

Adım 5: http: // sunucu: 9005 /


2

Sadece aşağıdaki satırı ekleyin build.sbt

PlayKeys.devSettings := Seq("play.server.http.port" -> "8080")


1

Windows'ta Play 2.2.1 bir PLAY_OPTS ortam değişkenini destekler. Play'in play.bat dosyası şu satırı içerir:

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" %*

9002 numaralı bağlantı noktasında çalıştırmak için

set PLAY_OPTS=-Dhttp.port=9002
play run

1

2.3.7 Play çerçevesi ile test edilmiştir. İyi çalışıyor.

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

1

Bunu ben yaptım. sudogerekli.

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

DÜZENLEME: Dikkatli kullandığım için sorun yaşadım sudo. Sonunda projeyi temizledim ve artık bu hileyi kullanmadım.


1
Bu, dağıtımınıza (Ubuntu ...) ve kök olarak oturum açmış olup olmadığınıza bağlıdır.
Pierre-Yves Le Dévéhat

1

Play 2.5.6 sürümünü kullanıyoruz.

Bağlantı noktasını değiştirmek için proje kök klasörünüze gidin ve activator "run 8008"komut isteminde / terminalinde : tuşuna basın .

ve bu kadar.


0

Windows'ta böyle bir start.bat dosyası kullanıyorum:

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

-DapplyEvolutions.default = true, evrime, onay istemeden evrimleri otomatik olarak uygulamasını söyler. Elbette üretim ortamında dikkatli kullanın ...


0

Uygulama portunu aktivatörden değiştiremiyoruz ama komut satırı aktivatörü "~ run 8080" ile değişebiliyor

Ancak şair 9000 üzerinde aktivatörden koşmak için bu portu kullanan uygulamayı durdurmamız gerekiyor. Bunu bulmak ve işlemi sonlandırmak için bu uygulamayı kullanabiliriz https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

Bundan sonra koşabiliriz ve başarılı olur.


0

Geliştirme Sırasında Port Belirleme

Varsayılan olarak, SBT uygulamayı 9000 numaralı bağlantı noktasında çalıştırır:

sbt run

Bir bağlantı noktası belirtmek için -Dhttp.port bayrağı ekleyin , örneğin:

sbt run -Dhttp.port=8080

-Dhttp.port bayrağını kullanarak geliştirme makinenizdeki birden çok uygulamada hata ayıklayabilirsiniz. Test ve üretim ortamlarında -Dhttp.port bayrağını da kullanabileceğinizi lütfen unutmayın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.