跳轉到內容

WebObjects/Web 應用程式/開發/直接連線

來自 Wikibooks,開放世界中的開放書籍

預設情況下,Xcode 和 Eclipse/WOLips 都會配置您的應用程式以使用直接連線。當您的 WebObjects 應用程式啟動時,它將在特定埠(由 WOPort 配置選項分配)上監聽。在完整的部署場景下,該埠由 mod_WebObjects 介面卡或 WebObjects cgi-bin 介面卡用於在 Apache 和您的應用程式之間進行通訊。但是,也可以完全在直接連線埠上執行開發(即沒有 Web 伺服器)。在此配置中,一個顯著的區別是,所有資源都由直接連線伺服器提供,而不是由 Apache 提供資源,在 Apache 場景中,資源由 Apache 直接提供,而您的 WebObjects 應用程式只處理應用程式請求。

警告- wotaskd 依賴於直接連線啟用,以便介面卡能夠與之通訊。不要在您的伺服器上全域性停用直接連線。例如,如果您從應用程式伺服器主目錄中的 WebObjects.properties 檔案中停用直接連線,您將阻止 wotaskd 在其分配的埠上響應請求。

關閉直接連線

[編輯 | 編輯原始碼]
  • 配置您的 Apache 以使用 mod_WebObjects 或 cgi-bin 介面卡
  • 確保 wotaskd 正在執行
  • 將 WODirectConnectEnabled 設定為 false
  • 設定您的 WebServerResources 資料夾,使其可由 Apache 訪問
  • 獲利

Logan Allred

[編輯 | 編輯原始碼]

我聽到了所有關於直接連線很糟糕的評論,而且我一直被它的怪癖困擾著,但我想知道那些避開直接連線的人他們的工作流程是什麼以及他們如何從中受益(尤其是如果他們使用 Eclipse/WOLips)。

我仍然使用直接連線,主要是因為我習慣了工作流程,而且現在已經弄清楚了大多數可能出錯的事情。我喜歡我的所有開發資源都集中在一個專案中,而且在我使用直接連線時,我在 WOBuilder 中似乎得到了一些好處。

也許是因為我大多數專案都主要關注資料而不是展示(我只有一些圖形和偶爾的樣式表——儘管我開始更多地使用樣式表),而且我經常在 Windows 和 Mac 上開發(因此指令碼編寫可能會很痛苦)。我的應用程式還沒有因為載入圖形的速度而受到影響(資料庫訪問的速度要快得多)。

我並不害怕 Web 伺服器,我只是懶惰 :),而且不習慣在“拆分部署”而不是“拆分開發”的情況下進行工作流程。您如何對您的 Web 資源進行版本控制和管理,這些資源位於與您的開發資源完全不同的位置(您在 Eclipse 中使用資原始檔夾,還是使用單獨的專案?或者使用我尚未了解的一些其他不錯的 Eclipse 功能?手動複製)。您如何處理跨開發/暫存/生產環境的部署?您需要對專案進行多少自定義或修改?

對於具有大量展示或專門圖形設計師的網站,我肯定能看到使用 Web 伺服器的真正優勢,但我通常在一個由 2-4 名開發人員組成的團隊中,展示很少。

我相信存在比我正在使用的更好的工作流程,我很好奇其他人認為 WO 的最佳開發和部署實踐是什麼。我錯過了什麼?

Chuck Hill

[編輯 | 編輯原始碼]

首先,不僅僅是關於影像。它是關於擁有一個真正的 Web 伺服器的強大功能,以及關於避免只在您將應用程式遷移到透過真正的 Web 伺服器執行時才會出現的問題的。想想以下事情

  • 快取,mod_expires 不是您的朋友
  • HTTPS
  • SSI
  • 重寫規則
  • 僅在透過 Web 伺服器訪問時才會出現的標頭

我相信您能想到更多區別。我寧願使用我在部署中會獲得的所有服務進行開發,而且還要找到在應用程式運行了半天之後出現的錯誤!我更願意在閒暇時體驗痛苦,而不是在恐慌中體驗痛苦。而且,至少在 OSX 上,啟動 Apache 非常容易。

至於工作流程,什麼工作流程?我們從原始碼庫中看到的“專案”是一個資料夾層次結構。一個是用於程式碼,這是 WO 專案所在的位置。另一個是 DocumentRoot,這是文件根目錄所在的位置。其他資料夾用於文件、設計、測試等。將每個資料夾簽出到其對應位置非常容易。如果您的影像大多是靜態的,那麼需要做的就更少了。如果它們經常更改,那麼設計師等可以簽出和簽入他們需要的部分,以一種對他們非常熟悉的方式,而無需費心去弄清楚像 Eclipse 專案這樣的玄妙的東西。您本地文件根目錄的影像更新與您工作空間的程式碼更新方式相同。

對於部署,我們有指令碼可以對所有程式碼進行命令列 Ant 構建,將所有資源(包括文件根目錄)打包成 tar 檔案,並一般性地建立一個安裝包。目標伺服器上的另一個指令碼接收該包,將其解壓縮,並將這些部分複製到它們需要去的位置。我不明白為什麼必須進行拆分安裝會讓這變得更容易。

華夏公益教科書