jetty源碼debug
㈠ 怎麼將django項目導出(django 批量導入數據)
本篇文章首席CTO筆記來給大家介紹有關怎麼將django項目導出以及django 批量導入數據的相關內容,希望對大家有所幫助,一起來看看吧。
本文目錄一覽:
1、如何在阿里雲上部署django2、如何將Django項目部署到阿里雲伺服器上3、Django源碼閱讀 (一) 項目的生成與啟動4、在pycharm導入django項目5、Ubuntu怎麼導入現成的django項目6、pycharm 從svn導出項目時候,選擇的目錄成為django工程名字,這是怎麼回事?請大神幫忙如何在阿里雲上部署django前提條件
1.為 python 應用程序安裝 virtualenv 和 virtualenv wrapper,目的在於為 Python 項目創建獨立的環境。
●安裝 pip
sudo apt-get install python-pip
●安裝 virtualenv
sudo pip install virtualenv
●創建目錄以存儲您的 virtualenv
mkdir ~/.virtualenvs
●安裝 virtualenwrapper
sudo pip install virtualenvwrapper
●將 WORKON_HOME 設置為您的 virtualenv 目錄
導出 WORKON_HOME=~/.virtualenvs
●將 WORKON_HOME 設置為您的 virtualenv 目錄
導出 WORKON_HOME=~/.virtualenvs
●將?virtualenvwrapper.sh?添加到?.bashrc
將此行添加到 ~/.bashrc 的末尾,以便載入 virtualenvwrapper 命令。/usr/local/bin/virtualenvwrapper.sh
退出,然後重新打開您的 shell,或者使用?.bashrc or source ~/.bashrc?命令重新載入 .bashrc,然後一切准備就緒。
2.安裝 git。
apt-get install git
3.安裝 Nginx 作為 Web 伺服器,這樣您便可在其之後運行您的應用程序。
Sudo apt-get install nginx
啟動您的第一個 Linux 實例
接下來向您介紹使用阿里雲管理控制台運行 ECS 實例的相關步驟。
1.登錄到您的帳戶,然後導航到「產品與服務」部分下的「雲伺服器」。單擊側邊欄菜單中的概覽。這會顯示運行中的實例列表。單擊購買實例從任意地域購買實例,或者繼續到下一步創建新實例。
2.單擊側邊欄菜單中的實例。在實例列表中選擇所需地域,然後單擊右上方欄中的創建實例。
3.系統會將您重新定向到「產品購買」控制台,在此您需要選擇偏好的資源包 - 對 ECS 實例和數據傳輸提供特殊定價的初級資源包或提供兩種定價模式的高級購買資源包。您可以根據自身需求選擇訂閱(按月或按年)或者按量付費。此案例中,我們選擇了「按量付費」。
4.在此窗口中,選擇要在其中啟動 ECS 實例的數據中心地域和可用性區域。如果選擇了地域但未選擇可用性區域,系統會將實例隨機放在任何區域。
5.現在您需要選擇自己想要創建的實例類型。根據自身需求,從「生成」選項卡中選擇生成實例類型。生成類型根據配置和所用的計算能力表示不同的實例類型。
6.接下來,選擇網路類型以啟動您的 ECS 實例。可根據自身需求選擇經典網路或專有網路。在經典網路中,阿里雲以分布式方式分配 IP 地址。它適合於需要簡單快速地使用 ECS 的用戶。專有網路更多的是一種邏輯隔離私有網路,它支持專用連接。它適合於熟悉網路管理的用戶。選擇適當的網路類型後,選擇網路計費類型:數據傳輸或固定帶寬。在這兩種情況下,您都需要設置網路帶寬峰值(最大數據傳輸速率)。
7.現在,您需要選擇操作系統。每個選項下都提供了不同操作系統版本的列表。選擇 Ubuntu。
8.根據自身需要,從下拉菜單中選擇系統磁碟類型。您還可以通過單擊「添加磁碟」向此列表添加更多磁碟。
9.在「安全設置」部分中,您可以創建密碼以提高安全性,或者在此階段跳過此步驟並稍後從管理控制台執行此操作。
10.在「采購計劃」部分中,鍵入您的實例名稱並設置要啟動的實例的數量。
11.在「概覽」部分查看配置詳情和總價,然後單擊立即購買。
12.單擊開通確認業務訂單並啟動實例。
13.啟動實例後,您可以在控制台的實例選項卡中查看該實例。
安裝和部署 Django 應用程序
您已使用阿里雲管理控制台創建和啟動 ECS 實例,接下來讓我們了解如何安裝和部署 Django 應用程序。
1.使用 ssh 命令登錄到您的伺服器
2.輸入密碼
3.通過創建一個新的 virtualenv 為部署 Django 應用程序設置環境:
mkvirtualenv DjangoApp
要退出新的 virtualenv,請使用 deactivate。
您可以使用 workon 在環境之間切換。要載入或在 virtualenv 之間切換,請使用 workon 命令:workon DjangoApp
4.在您的當前環境中安裝 Django
pip install Django
5.使用 django-admin 命令創建樣本項目並將目錄更改為項目文件夾。
django-admin startproject todoApp
cd todoApp/
6.遷移或引導您的資料庫。
python manage.py migrate
7.創建超級用戶以訪問管理面板。
python manage.py createsuperuser
8.設置用戶後,通過運行由 manage.py 操作的 runserver 命令測試您的應用程序
python manage.py runserver 0.0.0.0:8000
您將看到以下內容在埠 8000 上運行
轉至 /admin,這是您的管理面板,您可在此管理應用程序。
現在使用 Nginx 將您的應用程序置於 Web 伺服器之後。
9.創建資料庫架構 開通 python 環境。
●將目錄更改為 Django 項目目錄
●運行以下命令
python manage.py migrate
10.收集所有靜態文件(css、js 等)
●運行以下命令以在任意特定位置收集所有靜態文件
Python manage.py collectstatic --noinput
●開發人員負責將 STATIC_URL 路徑設置為將收集所有靜態文件的位置。
●這些變數在項目目錄內的 setting.py 中定義。
1.STATIC_URL
2.STATICFILES_DIRS
3.STATIC_ROOT
11.使用 uwsgi 伺服器安裝 uwsgi 庫並啟動伺服器。
pip install uWSGI
●創建用於部署 Django 應用程序的 ini 文件vim uwsgi.ini
●將其保存到應用程序目錄上的 uwsgi.ini。如需進一步了解如何編寫 ini 文件,請參閱?Python/WSGI 應用程序快速入門。運行此命令以啟動您的應用程序。
uwsgi uwsgi.ini (您的 ini 文件)
12.更改 nginx 配置文件以用於應用程序。
server ? { ? ? ? listen 80 default_server; ? ? ? ?listen [::]:80 default_server ipv6only=on; ? ? ? ?server_name localhost; ?location /static/ ? { ? ? ? ?include uwsgi_params; ? ? ? ?alias /root/todoApp/public/; ?} ?location ?/ ? ?{ ? ? ? ?include uwsgi_params; ? ? ? ?uwsgi_pass unix:/tmp/uwsgi.sock; ? ? } }
13.重啟 nginx,隨後您的應用程序將啟動並在埠 80 上的 nginx 之後運行。
如何將Django項目部署到阿里雲伺服器上
1,APP應用需要什麼樣的雲伺服器? 為了幫助大家了解如何使用阿里雲雲伺服器及相關應用,阿里雲的移動雲團隊開發了一個簡單的APP應用:移動雲相冊,其中使用了ECS主要用作部署雲相冊的API服務(圖片信息調用、圖片列表調用)和圖片縮略圖處理,因為這個應用服務端使用了java語言開發,因此在上面安裝tomcat來部署應用。 具體部署 1)遠程登錄: 第一次購買ECS後,會把該ECS伺服器的root賬號、密碼發送購買者的郵箱,然後購買者可以通過遠程登錄到ECS伺服器,具體遠程登錄可以參考如下: Windows:中國//help.aliyun中國/manual?spm=5176.383518.5.16.4lLZznhelpId=59 Linux:中國//help.aliyun中國/manual?spm=5176.383518.5.16.4lLZznhelpId=59 2)安裝web環境 根據自己應用特點選擇安裝相關web伺服器tomcat或者jetty,阿里雲提供了一條龍安裝部署腳本,為開發者提供了更多的方便,請參考如下鏈接:中國//help.aliyun中國/manual?spm=0.0.0.0.RGeYy4helpId=129 3)打包應用 將web源碼下載到本地,使用命令mvnpackage打成war包。如果不是maven工程,可以用類似ant打成war包。 4)上傳war包 Linux下面可以使用sftp上傳war包,上傳war包到指定目錄後進行解壓,具體使用方式參考:中國//help.aliyun中國/manual?spm=0.0.0.0.PnfpSLhelpId=1848 5)啟動web服務 將tomcat或jetty服務啟動 6)配置反向中國、綁定域名 具體配置信息參考:中國//help.aliyun中國/manual?spm=0.0.0.0.Ti7iuAhelpId=532, 中國//help.aliyun中國/manual?spm=0.0.0.0.MKbFj1helpId=65 2,APP應用如何把圖片存到雲存儲伺服器中? 圖片類APP應用的架構核心在於大量小文件的存儲與訪問,在文件數量較多的情況下將文件直接存儲在硬碟上將極大影響應用的訪問效率。阿里雲存儲服務OSS對海量小文件的存儲及管理具有很大優勢,圖片不從服務端下載,減少了服務端壓力。阿里雲的OSS的備份機制也保證了文件的存儲安全,其存儲容量可以無限擴展,每秒請求數超過50000次,多線BGP中國絡確保全國各地訪問流暢。 使用阿里雲OSS步驟: 1)登錄阿里雲官中國(aliyun中國)開通OSS 2)獲取KEY及密鑰 3)下載SDK (JAVA版下載地址為:中國//bbs.aliyun中國/job.php?action=downloadaid=38817 幫助手冊: 中國//aliyun_portal_storage.oss.aliyuncs中國/oss_api/oss_javahtml/index.html ) 4)開始APP開發 很簡單吧,下面是一個使用阿里雲的OSS上傳圖片的代碼樣例: StringupLoadURI = OSSClient.generateUploadUrl(Constants.SERVER_URL.GENERATE_URL,fileName, null); int status =OSSClient.uploadFile(upLoadURI, path); 3,APP上雲後如何使用雲資料庫? 為了幫助大家了解如何使用阿里雲雲伺服器及相關應用,阿里雲的移動雲團隊開發了一個簡單的APP應用:移動雲相冊,其中使用了RDS中提供的MYsql服務,資料庫中主要存儲了用戶上傳的圖片信息,包括原圖、縮略圖的信息及存儲地址,通過WEB端API向客戶端提供數據調用。 使用阿里雲RDS和使用本地資料庫基本上沒有區別,使用樣例如下: 1)創建資料庫實例 使用阿里雲賬號購買RDS後,可以創建資料庫實例。 2)創建資料庫以及管理賬號 創建資料庫名稱以及管理賬號,用於應用程序調用資料庫連接。 3)訪問資料庫: 創建完資料庫(test)後,在資料庫test里添加賬戶:test、密碼:test,可以在RDS控制台查看到資料庫相關信息,從中能夠得到資料庫的外中國地址如:xxxx.mysql.rds.aliyuncs中國,可以使用應用程序連接資料庫,javajdbc連接資料庫示例代碼如下: String url = 「jdbc:mysql://xxxx.mysql.rds.aliyun:3306/test」; String username = 「test」 ; String password = 「test」 ; try{ Connection con = DriverManager.getConnection(url ,username , password ) ; }catch(SQLException e){ e.printStackTrace() ; //需要對異常做處理
Django源碼閱讀 (一) 項目的生成與啟動誠實的說,直到目前為止,我並不欣賞django。在我的認知它並不是多麼精巧的設計。只是由功能堆積起來的"成熟方案"。但每一樣東西的崛起都是時代的選擇。無論你多麼不喜歡,但它被需要。希望有一天,python能有更多更豐富的成熟方案,且不再被詬病性能和可維護性。(屁話結束)
取其精華去其糟粕,django的優點是方便,我們這次源碼閱讀的目的是探究其方便的本質。計劃上本次源碼閱讀不會精細到每一處,而是大體以功能為單位進行解讀。
django-admin startproject HelloWorld 即可生成django項目,命令行是exe格式的。
manage.py 把參數交給命令行解析。
execute_from_command_line() 通過命令行參數,創建一個管理類。然後運行他的 execute() 。
如果設置了reload,將會在啟動前先 check_errors 。
check_errors() 是個閉包,所以上文結尾是 (django.setup)() 。
直接看最後一句 settings.INSTALLED_APPS 。從settings中抓取app
注意,這個settings還不是我們項目中的settings.py。而是一個對象,位於 djangoconf\__init__.py
這是個Settings類的懶載入封裝類,直到 __getattr__ 取值時才開始初始化。然後從Settings類的實例中取值。且會講該值賦值到自己的 __dict__ 上(下次會直接在自己身上找到,因為 __getattr__ 優先順序較低)
為了方便debug,我們直接寫個run.py。不用命令行的方式。
項目下建個run.py,模擬runserver命令
debug抓一下setting_mole
回到 setup() 中的最後一句 apps.populate(settings.INSTALLED_APPS)
開始看 apps.populate()
首先看這段
這些App最後都會封裝成為AppConfig。且會裝載到 self.app_configs 字典中
隨後,分別調用每個appConfig的 import_models() 和 ready() 方法。
App的裝載部分大體如此
為了方便debug我們改寫下最後一句
res的類型是Command django.contrib.staticfiles.management.commands.runserver.Command object at 0x00000101ED5163A0
重點是第二句,讓我們跳到 run_from_argv() 方法,這里對參數進行了若干處理。
用pycharm點這里的handle會進入基類的方法,無法得到正確的走向。實際上子類Commond重寫了這個方法。
這里分為兩種情況,如果是reload重載時,會直接執行 inner_run() ,而項目啟動需要先執行其他邏輯。
django 項目啟動時,實際上會啟動兩次,如果我們在項目入口(manage.py)中設置個print,會發現它會列印兩次。
第一次啟動時, DJANGO_AUTORELOAD_ENV 為None,無法進入啟動邏輯。會進入 restart_with_reloader() 。
在這里會將 DJANGO_AUTORELOAD_ENV 置為True,隨後重啟。
第二次時,可以進入啟動邏輯了。
這里創建了一個django主線程,將 inner_run() 傳入。
隨後本線程通過 reloader.run(django_main_thread) ,創建一個輪詢守護進程。
我們接下來看django的主線程 inner_run() 。
當我們看到wsgi時,django負責的啟動邏輯,就此結束了。接下來的工作交由wsgi伺服器了
這相當於我們之前在fastapi中說到的,將fastapi的app交由asgi伺服器。(asgi也是django提出來的,兩者本質同源)
那麼這個wsgi是從哪來的?讓我們來稍微回溯下
這個settings是一個對象,在之前的操作中已經從 settings.py 配置文件中獲得了自身的屬性。所以我們只需要去 settings.py 配置文件中尋找。
我們來尋找這個 get_wsgi_application() 。
它會再次調用 setup() ,重要的是,返回一個 WSGIHandler 類的實例。
這就是wsgiapp本身。
load_middleware() 為構建中間件堆棧,這也是wsgiapp獲取setting信息的唯一途徑。導入settings.py,生成中間件堆棧。
如果看過我之前那篇fastapi源碼的,應該對中間件堆棧不陌生。
app入口→中間件堆棧→路由→路由節點→endpoint
所以,wsgiapp就此構建完畢,伺服器傳入請求至app入口,即可經過中間件到達路由進行分發。
在pycharm導入django項目有時候,我們需要在多個地方編輯項目,這就需要在pycharm中導入django項目。首先要做的,當然是使用virtualenvwrapper來搭建虛擬環境,並且將項目中的requestrements.txt文件中的相關依賴安裝好。
接下來要做的是:
在這里我們需要設置一下django項目的目錄與settings文件的位置,以及啟動文件的路徑
以上就是項目的導入了,試試debug吧!!
Ubuntu怎麼導入現成的django項目python是跨平台的,復制過去就可以用的,最多路徑可能需要改一下,看你開發的時候用的是什麼方式了
pycharm 從svn導出項目時候,選擇的目錄成為django工程名字,這是怎麼回事?請大神幫忙這個是因為你導出的文件包含pycharm的項目文件,也就是[.idea],你手動把這個文件夾刪除掉就可以了。
如果解決了您的問題請採納!
如果未解決請繼續追問
結語:以上就是首席CTO筆記為大家整理的關於怎麼將django項目導出的全部內容了,感謝您花時間閱讀本站內容,希望對您有所幫助,更多關於django 批量導入數據、怎麼將django項目導出的相關內容別忘了在本站進行查找喔。
㈡ maven的jetty插件可以斷點調試嗎
環境和條件
Maven-3.0.3
Eclipse
請閱讀者事先具備一定maven知識
2 配置
2.1 添加Jetty插件
在pom.xml中加入如下代碼段
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.1.v20091125</version>
<configuration>
<contextPath>/</contextPath>
</webAppConfig>
</configuration>
</plugin>
2.2 配置eclipse
2.2.1 步驟一
進入Run/External Tools/External Tools Configuration目錄,選擇逗Program地並點擊逗New地按鈕。在逗Main地標簽中的逗Location地中設置mvn的執行路徑(比如/JavaDev/apache-maven-3.0.3/bin/mvn),在逗Working Directory地中選擇webapp所屬的workspace,在逗Arguments地中添加逗jetty:run地,如圖:
在逗Environment地標簽中,點擊逗New地按鈕,添加變數:MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
如果設置suspend=n,則運行時不需要等待debugger。
2.2.2 步驟二
進入逗Run/Debug/Debug Configuration地目錄,選擇逗Remote Java Application地並點擊逗New地按鈕,在逗Project地中選擇webapp項目。並確保埠號與步驟一中逗address=地設置的值相同。
關聯源碼:選擇逗Source地標簽,選擇逗Add…地按鈕添加關聯的源代碼,如下圖,選擇逗Java Project地關聯了vos-sale-service項目和vos-sale-webapp的源碼。源代碼關聯後,即可進行調試。
配置完畢,開始調試:
1. 在逗Run/External Tools地中選擇步驟一中創建的逗Program地名稱,開始運行插件,如果設置了suspend=y,則會等待下面的debugger運行;
2. 在逗Run/Debug地中選擇步驟二中創建的debugger,連接上後,即可以進行debug。
2.2.3 關閉Jetty
為了關閉jetty,建議選中步驟二中的逗Allow termination of remote VM地
㈢ GitHub上面有哪些經典的java框架源碼
Bazel:來自Google的構建工具,可以快速、可靠地構建代碼。官網
Gradle:使用Groovy(非XML)進行增量構建,可以很好地與Maven依賴管理配合工作。官網
Buck:Facebook構建工具。官網
ASM:通用底層位元組碼操作和分析開發庫。官網
Byte Buddy:使用流式API進一步簡化位元組碼生成。官網
Byteman:在運行時通過DSL(規則)操作位元組碼進行測試和故障排除。官網
Javassist:一個簡化位元組碼編輯嘗試。官網
Apache Aurora:Apache Aurora是一個Mesos框架,用於長時間運行服務和定時任務(cron job)。官網
Singularity:Singularity是一個Mesos框架,方便部署和操作。它支持Web Service、後台運行、調度作業和一次性任務。官網
Checkstyle:代碼編寫規范和標准靜態分析工具。官網
Error Prone:將常見編程錯誤作為運行時錯誤報告。官網
FindBugs:通過位元組碼靜態分析查找隱藏bug。官網
jQAssistant:使用基於Neo4J查詢語言進行代碼靜態分析。官網
PMD:對源代碼分析查找不良的編程習慣。官網
SonarQube:通過插件集成其它分析組件,對過去一段時間內的數據進行統計。官網
ANTLR:復雜的全功能自頂向下解析框架。官網
JavaCC:JavaCC是更加專門的輕量級工具,易於上手且支持語法超前預測。官網
config:針對JVM語言的配置庫。官網
owner:減少冗餘配置屬性。官網
Choco:可直接使用的約束滿足問題求解程序,使用了約束規劃技術。官網
JaCoP:為FlatZinc語言提供了一個介面,可以執行MiniZinc模型。官網
OptaPlanner:企業規劃與資源調度優化求解程序。官網
Sat4J:邏輯代數與優化問題最先進的求解程序。官網
Bamboo:Atlassian解決方案,可以很好地集成Atlassian的其他產品。可以選擇開源許可,也可以購買商業版。官網
CircleCI:提供託管服務,可以免費試用。官網
Codeship:提供託管服務,提供有限的免費模式。官網
fabric8:容器集成平台。官網
Go:ThoughtWork開源解決方案。官網
Jenkins:支持基於伺服器的部署服務。官網
TeamCity:JetBrain的持續集成解決方案,有免費版。官網
Travis:通常用作開源項目的託管服務。官網
Buildkite: 持續集成工具,用簡單的腳本就能設置pipeline,而且能快速構建,可以免費試用。官網
uniVocity-parsers:速度最快功能最全的CSV開發庫之一,同時支持TSV與固定寬度記錄的讀寫。官網
Apache Phoenix:HBase針對低延時應用程序的高性能關系資料庫層。官網
Crate:實現了數據同步、分片、縮放、復制的分布式數據存儲。除此之外還可以使用基於SQL的語法跨集群查詢。官網
Flyway:簡單的資料庫遷移工具。官網
H2:小型SQL資料庫,以可以作為內存資料庫使用著稱。官網
HikariCP:高性能JDBC連接工具。官網
JDBI:便捷的JDBC抽象。官網
Protobuf:Google數據交換格式。官網
SBE:簡單二進制編碼,是最快速的消息格式之一。官網
Wire:整潔輕量級協議緩存。官網
Apache DeltaSpike:CDI擴展框架。官網
Dagger2:編譯時注入框架,不需要使用反射。官網
Guice:可以匹敵Dagger的輕量級注入框架。官網
HK2:輕量級動態依賴注入框架。官網
ADT4J:針對代數數據類型的JSR-269代碼生成器。官網
AspectJ:面向切面編程(AOP)的無縫擴展。官網
Auto:源代碼生成器集合。官網
DCEVM:通過修改JVM在運行時支持對已載入的類進行無限次重定義。官網
HotswapAgent:支持無限次重定義運行時類與資源。官網
Immutables:類似Scala的條件類。官網
JHipster:基於Spring Boot與AngularJS應用程序的Yeoman源代碼生成器。官網
JRebel:無需重新部署,可以即時重新載入代碼與配置的商業軟體。官網
Lombok:減少冗餘的代碼生成器。官網
Spring Loaded:類重載代理。官網
vert.x:多語言事件驅動應用框架。官網
Akka:用來編寫分布式容錯並發事件驅動應用程序的工具和運行時。官網
Apache Storm:實時計算系統。官網
Apache ZooKeeper:針對大型分布式系統的協調服務,支持分布式配置、同步和名稱注冊。官網
Hazelcast:高可擴展內存數據網格。官網
Hystrix:提供延遲和容錯。官網
JGroups:提供可靠的消息傳遞和集群創建的工具。官網
Orbit:支持虛擬角色(Actor),在傳統角色的基礎上增加了另外一層抽象。官網
Quasar:為JVM提供輕量級線程和角色。官網
Apache Cassandra:列式資料庫,可用性高且沒有單點故障。官網
Apache HBase:針對大數據的Hadoop資料庫。官網
Druid:實時和歷史OLAP數據存儲,在聚集查詢和近似查詢方面表現不俗。官網
Infinispan:針對緩存的高並發鍵值對數據存儲。官網
Bintray:發布二進制文件版本控制工具。可以於Maven或Gradle一起配合使用。提供開源免費版本和幾種商業收費版本。官網
Central Repository:最大的二進制組件倉庫,面向開源社區提供免費服務。Apache Maven默認使用Central官網Repository,也可以在所有其他構建工具中使用。
IzPack:為跨平台部署建立創作工具(Authoring Tool)。官網
JitPack:打包GitHub倉庫的便捷工具。可根據需要構建Maven、Gradle項目,發布可立即使用的組件。官網
Launch4j:將JAR包裝為輕量級本機Windows可執行程序。官網
Nexus:支持代理和緩存功能的二進制管理工具。官網
packr:將JAR、資源和JVM打包成Windows、Linux和Mac OS X本地發布文件。官網
Apache POI:支持OOXML規范(XLSX、DOCX、PPTX)以及OLE2規范(XLS、DOC、PPT)。官網
documents4j:使用第三方轉換器進行文檔格式轉換,轉成類似MS Word這樣的格式。官網
jOpenDocument:處理OpenDocument格式(由Sun公司提出基於XML的文檔格式)。官網
Cyclops:支持一元(Monad)操作和流操作工具類、comprehension(List語法)、模式匹配、trampoline等特性。官網
Fugue:Guava的函數式編程擴展。官網
Functional Java:實現了多種基礎和高級編程抽象,用來輔助面向組合開發(composition-oriented development)。官網
Javaslang:一個函數式組件庫,提供持久化數據類型和函數式控制結構。官網
jOOλ:旨在填補Java 8 lambda差距的擴展,提供了眾多缺失的類型和一組豐富的順序流API。官網
jMonkeyEngine:現代3D游戲開發引擎。官網
libGDX:全面的跨平台高級框架。官網
LWJGL:對OpenGL/CL/AL等技術進行抽象的健壯框架。官網
JavaFX:Swing的後繼者。官網
Scene Builder:開發JavaFX應用的可視化布局工具。官網
Agrona:高性能應用中常見的數據結構和工具方法。官網
Disruptor:線程間消息傳遞開發庫。官網
fastutil:快速緊湊的特定類型集合(Collection)。官網
GS Collections:受Smalltalk啟發的集合框架。官網
HPPC:基礎類型集合。官網
Javolution:實時和嵌入式系統的開發庫。官網
JCTools:JDK中缺失的並發工具。官網
Koloboke:Hash set和hash map。官網
Trove:基礎類型集合。官網
High-scale-bli:Cliff Click 個人開發的高性能並發庫官網
Eclipse:老牌開源項目,支持多種插件和編程語言。官網
IntelliJ IDEA:支持眾多JVM語言,是安卓開發者好的選擇。商業版主要針對企業客戶。官網
NetBeans:為多種技術提供集成化支持,包括Java SE、Java EE、資料庫訪問、HTML5
Imgscalr:純Java 2D實現,簡單、高效、支持硬體加速的圖像縮放開發庫。官網
Picasso:安卓圖片下載和圖片緩存開發庫。官網
Thumbnailator:Thumbnailator是一個高質量Java縮略圖開發庫。官網
ZXing:支持多種格式的一維、二維條形碼圖片處理開發庫。官網
im4java: 基於ImageMagick或GraphicsMagick命令行的圖片處理開發庫,基本上ImageMagick能夠支持的圖片格式和處理方式都能夠處理。官網
Apache Batik:在Java應用中程序以SVG格式顯示、生成及處理圖像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模塊,可以集成使用也可以單獨使用,還可以擴展自定義的SVG標簽。官網
Genson:強大且易於使用的Java到JSON轉換開發庫。官網
Gson:谷歌官方推出的JSON處理庫,支持在對象與JSON之間雙向序列化,性能良好且可以實時調用。官網
Jackson:與GSON類似,在頻繁使用時性能更佳。官網
LoganSquare:基於Jackson流式API,提供對JSON解析和序列化。比GSON與Jackson組合方式效果更好。官網
Fastjson:一個Java語言編寫的高性能功能完善的JSON庫。官網
Kyro:快速、高效、自動化的Java對象序列化和克隆庫。官網
JDK 9:JDK 9的早期訪問版本。官網
OpenJDK:JDK開源實現。官網
Scala:融合了面向對象和函數式編程思想的靜態類型編程語言。官網
Groovy:類型可選(Optionally typed)的動態語言,支持靜態類型和靜態編譯。目前是一個Apache孵化器項目。官網
Clojure:可看做現代版Lisp的動態類型語言。官網
Ceylon:RedHat開發的面向對象靜態類型編程語言。官網
Kotlin:JetBrain針對JVM、安卓和瀏覽器提供的靜態類型編程語言。官網
Xtend:一種靜態編程語言,能夠將其代碼轉換為簡潔高效的Java代碼,並基於JVM運行。官網
Apache Log4j 2:使用強大的插件和配置架構進行完全重寫。官網
kibana:分析及可視化日誌文件。官網
Logback:強健的日期開發庫,通過Groovy提供很多有趣的選項。官網
logstash:日誌文件管理工具。官網
Metrics:通過JMX或HTTP發布參數,並且支持存儲到資料庫。官網
SLF4J:日誌抽象層,需要與具體的實現配合使用。官網
Apache Flink:快速、可靠的大規模數據處理引擎。官網
Apache Hadoop:在商用硬體集群上用來進行大規模數據存儲的開源軟體框架。官網
Apache Mahout:專注協同過濾、聚類和分類的可擴展演算法。官網
Apache Spark:開源數據分析集群計算框架。官網
DeepDive:從非結構化數據建立結構化信息並集成到已有資料庫的工具。官網
Deeplearning4j:分布式多線程深度學習開發庫。官網
H2O:用作大數據統計的分析引擎。官網
Weka:用作數據挖掘的演算法集合,包括從預處理到可視化的各個層次。官網
QuickML:高效機器學習庫。官網、GitHub
Aeron:高效可擴展的單播、多播消息傳遞工具。官網
Apache ActiveMQ:實現JMS的開源消息代理(broker),可將同步通訊轉為非同步通訊。官網
Apache Camel:通過企業級整合模式(Enterprise Integration Pattern EIP)將不同的消息傳輸API整合在一起。官網
Apache Kafka:高吞吐量分布式消息系統。官網
Hermes:快速、可靠的消息代理(Broker),基於Kafka構建。官網
JBoss HornetQ:清晰、准確、模塊化,可以方便嵌入的消息工具。官網
JeroMQ:ZeroMQ的純Java實現。官網
Smack:跨平台XMPP客戶端函數庫。官網
Openfire:是開源的、基於XMPP、採用Java編程語言開發的實時協作伺服器。 Openfire安裝和使用都非常簡單,並可利用Web界面進行管理。官網GitHub
Spark:是一個開源,跨平台IM客戶端。它的特性支持集組聊天,電話集成和強大安全性能。如果企業內部部署IM使用Openfire+Spark是最佳的組合。官網GitHub
Tigase: 是一個輕量級的可伸縮的 Jabber/XMPP 伺服器。無需其他第三方庫支持,可以處理非常高的復雜和大量的用戶數,可以根據需要進行水平擴展。官網
Design Patterns:實現並解釋了最常見的設計模式。官網
Jimfs:內存文件系統。官網
Lanterna:類似curses的簡單console文本GUI函數庫。官網
LightAdmin:可插入式CRUD UI函數庫,可用來快速應用開發。官網
OpenRefine:用來處理混亂數據的工具,包括清理、轉換、使用Web Service進行擴展並將其關聯到資料庫。官網
RoboVM:Java編寫原生iOS應用。官網
Quartz:強大的任務調度庫.官網
AppDynamics:性能監測商業工具。官網
JavaMelody:性能監測和分析工具。官網
Kamon:Kamon用來監測在JVM上運行的應用程序。官網
New Relic:性能監測商業工具。官網
SPM:支持對JVM應用程序進行分布式事務追蹤的性能監測商業工具。官網
Takipi:產品運行時錯誤監測及調試商業工具。官網
JNA:不使用JNI就可以使用原生開發庫。此外,還為常見系統函數提供了介面。官網
Apache OpenNLP:處理類似分詞等常見任務的工具。官網
CoreNLP:斯坦佛CoreNLP提供了一組基礎工具,可以處理類似標簽、實體名識別和情感分析這樣的任務。官網
LingPipe:一組可以處理各種任務的工具集,支持POS標簽、情感分析等。官網
Mallet:統計學自然語言處理、文檔分類、聚類、主題建模等。官網
Async Http Client:非同步HTTP和WebSocket客戶端函數庫。官網
Grizzly:NIO框架,在Glassfish中作為網路層使用。官網
Netty:構建高性能網路應用程序開發框架。官網
OkHttp:一個Android和Java應用的HTTP+SPDY客戶端。官網
Undertow:基於NIO實現了阻塞和非阻塞API的Web伺服器,在WildFly中作為網路層使用。官網
Ebean:支持快速數據訪問和編碼的ORM框架。官網
EclipseLink:支持許多持久化標准,JPA、JAXB、JCA和SDO。官網
Hibernate:廣泛使用、強健的持久化框架。Hibernate的技術社區非常活躍。官網
MyBatis:帶有存儲過程或者SQL語句的耦合對象(Couples object)。官網
OrmLite:輕量級開發包,免除了其它ORM產品中的復雜性和開銷。官網
Nutz:另一個SSH。官網,Github
JFinal:JAVA WEB + ORM框架。官網,Github
Apache FOP:從XSL-FO創建PDF。官網
Apache PDFBox:用來創建和操作PDF的工具集。官網
DynamicReports:JasperReports的精簡版。官網
flyingsaucer:XML/XHTML和CSS 2.1渲染器。官網
iText:一個易於使用的PDF函數庫,用來編程創建PDF文件。注意,用於商業用途時需要許可證。官網
JasperReports:一個復雜的報表引擎。官網
jHiccup:提供平台中JVM暫停的日誌和記錄。官網
JMH:JVM基準測試工具。官網
JProfiler:商業分析器。官網
LatencyUtils:測量和報告延遲的工具。官網
VisualVM:對運行中的應用程序信息提供了可視化界面。官網
YourKit Java Profiler:商業分析器。官網
Reactive Streams:非同步流處理標准,支持非阻塞式反向壓力(backpressure)。官網
Reactor:構建響應式快速數據(fast-data)應用程序的開發庫。官網
RxJava:通過JVM可觀察序列(observable sequence)構建非同步和基於事件的程序。官網
Dropwizard:偏向於自己使用的Web框架。用來構建Web應用程序,使用了Jetty、Jackson、Jersey和Metrics。官網
Feign:受Retrofit、JAXRS-2.0和WebSocket啟發的HTTP客戶端連接器(binder)。官網
Jersey:JAX-RS參考實現。官網
RESTEasy:經過JAX-RS規范完全認證的可移植實現。官網
RestExpress:一個Java類型安全的REST客戶端。官網
RestX:基於註解處理和編譯時源碼生成的框架。官網
Retrofit:類型安全的REST客戶端。官網
Spark:受到Sinatra啟發的Java REST框架。官網
Swagger:Swagger是一個規范且完整的框架,提供描述、生產、消費和可視化RESTful Web Service。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
DataMelt:用於科學計算、數據分析及數據可視化的開發環境。官網
JGraphT:支持數學圖論對象和演算法的圖形庫。官網
JScience:用來進行科學測量和單位的一組類。官網
Apache Solr:一個完全的企業搜索引擎。為高吞吐量通信進行了優化。官網
Elasticsearch:一個分布式、支持多租戶(multitenant)全文本搜索引擎。提供了RESTful Web介面和無schema的JSON文檔。官網
Apache Lucene:是一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。官網
Apache Shiro:執行認證、授權、加密和會話管理。官網
Bouncy Castle,涵蓋了從基礎的幫助函數到PGP/SMIME操作。官網:多途加密開發庫。支持JCA提供者(JCA provider)
Cryptomator:在雲上進行客戶端跨平台透明加密。官網
Keycloak:為瀏覽器應用和RESTful Web Service集成SSO和IDM。目前還處於beta版本,但是看起來非常有前途。官網
PicketLink:PicketLink是一個針對Java應用進行安全和身份認證管理的大型項目(Umbrella Project)。官網
FlatBuffers:高效利用內存的序列化函數庫,無需解包和解析即可高效訪問序列化數據。官網
Kryo:快速、高效的對象圖形序列化框架。官網
FST:提供兼容JDK的高性能對象圖形序列化。官網
MessagePack:一種高效的二進制序列化格式。官網
Apache Tomcat:針對Servlet和JSP的應用伺服器,健壯性好且適用性強。官網
Apache TomEE:Tomcat加Java EE。官網
Jetty:輕量級、小巧的應用伺服器,通常會嵌入到項目中。官網
WebSphere Liberty:輕量級、模塊化應用伺服器,由IBM開發。官網
WildFly:之前被稱作JBoss,由Red Hat開發。支持很多Java EE功能。官網
Apache Velocity:提供HTML頁面模板、email模板和通用開源代碼生成器模板。官網
FreeMarker:通用模板引擎,不需要任何重量級或自己使用的依賴關系。官網
Handlebars.java:使用Java編寫的模板引擎,邏輯簡單,支持語義擴展(semantic Mustache)。官網
Thymeleaf:旨在替換JSP,支持XML文件的工具。官網
Apache JMeter:功能性測試和性能評測。官網
Arquillian:集成測試和功能行測試平台,集成Java EE容器。官網
AssertJ:支持流式斷言提高測試的可讀性。官網
Awaitility:用來同步非同步操作的DSL。官網
Cucumber:BDD測試框架。官網
Gatling:設計為易於使用、可維護的和高性能負載測試工具。官網
Hamcrest:可用來靈活創建意圖(intent)表達式的匹配器。官網
JMockit:用來模擬靜態、final方法等。官網
JUnit:通用測試框架。官網
Mockito:在自動化單元測試中創建測試對象,為TDD或BDD提供支持。官網
PowerMock: 支持模擬靜態方法、構造函數、final類和方法、私有方法以及移除靜態初始化器的模擬工具。官網
REST Assured:為REST/HTTP服務提供方便測試的Java DSL。官網
Selenide:為Selenium提供精準的周邊API,用來編寫穩定且可讀的UI測試。官網
Selenium:為Web應用程序提供可移植軟體測試框架。官網
Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官網兼容JUnit框架,支持衍生的Groovy范的語言。
TestNG:測試框架。官網
Truth:Google的斷言和命題(proposition)框架。官網
Unitils:模塊化測試函數庫,支持單元測試和集成測試。官網
WireMock:Web Service測試樁(Stub)和模擬函數。官網
Apache Commons:提供各種用途的函數,比如配置、驗證、集合、文件上傳或XML處理等。官網
args4j:命令行參數解析器。官網
CRaSH:為運行進行提供CLI。官網
Gephi:可視化跨平台網路圖形化操作程序。官網
Guava:集合、緩存、支持基本類型、並發函數庫、通用註解、字元串處理、I/O等。官網
JADE:構建、調試多租戶系統的框架和環境。官網
javatuples:正如名字表示的那樣,提供tuple支持。盡管目前tuple的概念還有留有爭議。官網
JCommander:命令行參數解析器。官網
Protégé:提供存在論(ontology)編輯器以及構建知識系統的框架。官網
Apache Nutch:可用於生產環境的高度可擴展、可伸縮的網路爬蟲。官網
Crawler4j:簡單的輕量級網路爬蟲。官網
JSoup:刮取、解析、操作和清理HTML。官網
Apache Tapestry:基於組件的框架,使用Java創建動態、強健的、高度可擴展的Web應用程序。官網
Apache Wicket:基於組件的Web應用框架,與Tapestry類似帶有狀態顯示GUI。官網
Google Web Toolkit:一組Web開發工具集,包含在客戶端將Java代碼轉為JavaScript的編譯器、XML解析器、RCP官網API、JUnit集成、國際化支持和GUI控制項。
Grails:Groovy框架,旨在提供一個高效開發環境,使用約定而非配置、沒有XML並支持混入(mixin)。官網
Ninja:Java全棧Web開發框架。非常穩固、快速和高效。官網
Pippo:小型、高度模塊化的類Sinatra框架。官網
Play:使用約定而非配置,支持代碼熱載入並在瀏覽器中顯示錯誤。官網
PrimeFaces:JSF框架,提供免費和帶支持的商業版本。包括若干前端組件。官網
Ratpack:一組Java開發函數庫,用於構建快速、高效、可擴展且測試完備的HTTP應用程序。官網
Spring Boot:微框架,簡化了Spring新程序的開發過程。官網
Spring:旨在簡化Java EE的開發過程,提供依賴注入相關組件並支持面向切面編程。官網
Vaadin:基於GWT構建的事件驅動框架。使用服務端架構,客戶端使用Ajax。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
jBPM:非常靈活的業務流程管理框架,致力於構建開發與業務分析人員之間的橋梁。官網
Activity:輕量級工作流和業務流程管理框架。官網github
位元組碼操作
編程方式操作位元組碼的開發庫。
集群管理
在集群內動態管理應用程序的框架。
代碼分析
測量代碼指標和質量工具。
編譯器生成工具
用來創建解析器、解釋器或編譯器的框架。
外部配置工具
支持外部配置的開發庫。
約束滿足問題求解程序
幫助解決約束滿足問題的開發庫。
持續集成
CSV解析
簡化CSV數據讀寫的框架與開發庫
資料庫
簡化資料庫交互的相關工具。
幫實現依賴翻轉範式的開發庫。官網
開發流程增強工具
從最基本的層面增強開發流程。
分布式應用
用來編寫分布式容錯應用的開發庫和框架。
分布式資料庫
對應用程序而言,在分布式系統中的資料庫看起來就像是只有一個數據源。
發布
以本機格式發布應用程序的工具。
文檔處理工具
處理Office文檔的開發庫。
函數式編程
函數式編程支持庫。
游戲開發
游戲開發框架。
GUI
現代圖形化用戶界面開發庫。
高性能計算
涵蓋了從集合到特定開發庫的高性能計算相關工具。
IDE
簡化開發的集成開發環境。
JSON
簡化JSON處理的開發庫。
JVM與JDK
目前的JVM和JDK實現。
基於JVM的語言
除Java外,可以用來編寫JVM應用程序的編程語言。
日誌
記錄應用程序行為日誌的開發庫。
機器學習
提供具體統計演算法的工具。其演算法可從數據中學習。
消息傳遞
在客戶端之間進行消息傳遞,確保協議獨立性的工具。
雜項
未分類其它資源。
應用監控工具
監控生產環境中應用程序的工具。
原生開發庫
用來進行特定平台開發的原生開發庫。
自然語言處理
用來專門處理文本的函數庫。
網路
網路編程函數庫。
ORM
處理對象持久化的API。
用來幫助創建PDF文件的資源。
性能分析
性能分析、性能剖析及基準測試工具。
響應式開發庫
用來開發響應式應用程序的開發庫。
REST框架
用來創建RESTful 服務的框架。
科學計算與分析
用於科學計算和分析的函數庫。
搜索引擎
文檔索引引擎,用於搜索和分析。
安全
用於處理安全、認證、授權或會話管理的函數庫。
序列化
用來高效處理序列化的函數庫。
應用伺服器
用來部署應用程序的伺服器。
模板引擎
在模板中替換表達式的工具。
測試
測試內容從對象到介面,涵蓋性能測試和基準測試工具。
通用工具庫
通用工具類函數庫。
網路爬蟲
用於分析網站內容的函數庫。
Web框架
用於處理Web應用程序不同層次間通訊的框架。
業務流程管理套件
流程驅動的軟體系統構建。
資源
社區
㈣ 如何修改kettle slaveserver的最大連接數
背景
在使用ftp下載插件時,發現進行本地執行時可以正常,但當選擇了遠程執行並指定了遠程伺服器後發現出現了錯誤:從 FTP:User cannot log in. 獲取文件時發生錯誤。根據錯誤信息可以判斷是因為ftp登錄不上的原因,至於具體的原因無法定位,為了一探究竟,於是便萌生了調試遠程作業的想法,順便深入了解一下了解kettle運行原理以及源碼學習。
思路
carte伺服器實際上就是一個web server,該web server 是基於 Jetty 這個嵌入式的開源 servlet 容器。這個web server主要是提供轉換運行的環境,另外一個重要的功能通過提供servlet來在客戶端、主伺服器和從屬伺服器之間進行通訊和控制。主伺服器和從屬 伺服器之間是通過httpClient來進行通訊的,通訊時傳遞的數據是xml格式。通過提供的servlet,可以實現啟動、停止、暫停轉換或者作業、 獲得轉換或者作業的狀態、注冊子伺服器、獲得子伺服器的列表等等.
其實思路以及LZ使用的方法很簡單:通過java代碼在eclipse中啟動一個Carte伺服器,然後遠程執行作業時指定伺服器作為載體。
搭建Carte服務啟動環境
首先創建一個普通的java project項目,如果沒有kettle源碼環境的話可以創建maven project,這樣直接從中心倉庫上面獲得jar包以及源碼。剛好LZ之前有編譯過kettle源碼且已 經作為項目導入了eclipse中,所以 源碼以及相關kettle的jar包都已經有了。
創建了項目後,需要把相關的jar包加到java bulid path中,下面的jar包也可以從PDI工具的lib目錄下獲得:
把依賴包加入到項目中後,創建一個類來啟動Carte服務:
public class CarteServer {
publicstaticvoid main(String[] args) throws Exception {
SlaveServerConfig config =new SlaveServerConfig("192.168.31.43", 7088,true);//ip與埠與通過Carte.bat啟動時指定的參數一樣
Carte.runCarte(config); //通過該靜態方法啟動carte
}
}
開始遠程調試
1.啟動carte服務,建好CarteServer類後,直接debug as --> java application,即可啟動carte服務,在控制台可以看到以下信息:
2016/08/11 10:55:55 - Carte - 創建 web 服務監聽器 @ 地址: 192.168.31.43:7088
2016-08-11 10:55:55.912:INFO::jetty-6.1.26
2016-08-11 10:55:55.933:INFO::Started [email protected]:7088
2.打開spoon工具,創建一個job,下面的job是從ftp伺服器上下載文件:
3.因為作業用到了FTP下載插件,在源碼中對應JobEntryFTP類,打開該類並在execute()方法中打上斷點:
4.運行job,選擇遠程執行,選擇上述類CarteServer中啟動的伺服器(要先在spoon工具中新建一個子伺服器):
5.觀察斷點位置,看到已經進入了調試:
大功告成,至於ftp下載插件為什麼在遠程執行中錯誤另外說明。
遠程執行流程
用戶運行kettle作業並選擇「遠程執行」,觸發org.pentaho.di.job.Job類的sendToSlaveServer方法
在sendToSlaveServer方法中,首先生成XML格式的作業元數據描述。
調用SlaveServer的sendXML()方法把這些元數據會被發送到遠程的carte伺服器。
伺服器端AddJobServlet接收到請求後,進入doGet()方法通過元數據構造出Job實體並把作業保存到JobMap中。
在sendToSlaveServer方法中,把XML發送到carte伺服器後,接著調用SlaveServer的execService()方法進行啟動遠程的job
此時伺服器端StartJobServlet會接收到請求後,會給job(其實是一個Thread)做一堆初始化工作,最後調用job的start方法進行啟動。
㈤ jetty9莫名的啟動不了了,該怎麼處理
電腦藍屏有很多方面的影響因素: 一、屏幕顯示系統忙,請按任意鍵繼續…… 1、虛擬內存不足造成系統多任務運算錯誤 虛擬內存是WINDOWS系統所特有的一種解決系統資源不足的方法,其一般要求主引導區的硬碟剩餘空間是其物理內存的2-3倍。而一些發燒友為了充分利用空間,將自己的硬碟塞到滿滿的,忘記了WINDOWS這個苛刻的要求。結果導致虛擬內存因硬碟空間不足而出現運算錯誤,所以就出現藍屏。要解決這個問題好簡單,盡量不要把硬碟塞得滿滿的,要經常刪除一些系統產生的臨時文件、交換文件,從而可以釋放空間。或可以手動配置虛擬內存,選擇高級,把虛擬內存的默認地址,轉到其他的邏輯盤下。這樣就可以避免了因虛擬內存不足而引起的藍屏。 2、CPU超頻導致運算錯誤 超頻對於發燒友來說是常事,所以由超頻所引起的各種故障也就在所難免了。超頻,就本身而言就是在原有的基礎上完成更高的性能,但由於進行了超載運算,造成其內部運算過多,使CPU過熱,從而導致系統運算錯誤。有些CPU的超頻性能比較好,如INTEL的賽揚處理器和AMD-K6-2處理器還算較好的,但有時也會出現一些莫名其妙的錯誤。(例如:我曾試過將INTEL賽揚300A,在超頻到450時,軟碟機在沒有接受命令時,進行讀盤操作)。INTEL的低於200的CPU以及AMD-K5的超頻能力就不是那麼好。建議高檔的CPU要超頻時,那麼散熱工作一定要做好,最好裝一個大的風扇,再加上一些硅膠之類的散熱材料。至於一些低檔的CPU我建議你就最好不要超頻了,免得超頻達不到預想的效果反而經常出現藍屏影響計算機的正常速度。 二、內存條的互不兼容或損壞引起運算錯誤 這時個最直觀的現象,因為這個現象往往在一開機的時候就可以見到,根本啟動不了計算機,畫面提示出內存有問題,問你是否要繼續。造成這種錯誤是物理上的損壞內存或者內存與其它硬體不兼容所致。這時候只有換過另外的內存了。 三、光碟機在讀盤時被非正常打開所至 這個現象是在光碟機正在讀取數據時,由於被誤操作打開而導致出現藍屏。這個問題不影響系統正常動作,只要再彈入光碟或按ESC鍵就可以。 以上是我在維護計算機中碰到導致藍屏的幾種原因,或許還會有其他一些莫名其妙的問題導致計算機出現藍屏。不管怎樣,遇到這類問題後,應先仔細分析問題發生的原因,然後再著手解決。 四、硬體剩餘空間太小或碎片太多 由於Win9X運行時需要用硬碟作虛擬內存,這就要求硬碟必須保留一定的自由空間以保證程序的正常運行。一般而言,最低應保證100MB以上的空間,否則出現「藍屏」很可能與硬碟剩餘空間太小有關。另外,硬碟的碎片太多,也容易導致「藍屏」的出現。因此,每隔一段時間進行一次碎片整理是必要的。 五、系統硬體沖突 這種現象導致「藍屏」也比較常見。實踐中經常遇到的是音效卡或顯示卡的設置沖突。在「控制面板」→「系統」→「設備管理」中檢查是否存在帶有黃色問號或感嘆號的設備,如存在可試著先將其刪除,並重新啟動電腦,由Win9X自動調整,一般可以解決問題。若還不行,可手工進行調整或升級相應的驅動程序。 "藍屏"的軟體原因及解決 與硬體密切聯系的是軟體,有時軟體在"藍屏"現象中也"功不可沒",載入了過多的程序、注冊表有問題、軟硬不兼容、驅動程序有問題,相對於硬體原因來說要不易察覺些,可要多加註意......... 一、啟動時載入程序過多 不要在啟動時載入過多的應用程序(尤其是你的內存小於64MB),以免使系統資源消耗殆盡。正常情況下,Win9X啟動後系統資源應不低於90%。最好維持在90%以上,若啟動後未運行任何程序就低於70%,就需要卸掉一部分應用程序,否則就可能出現「藍屏」。 二、應用程序存在著BUG 有些應用程序設計上存在著缺陷或錯誤,運行時有可能與Win9X發生沖突或爭奪資源,造成Win9X無法為其分配內存地址或遇到其保護性錯誤。這種BUG可能是無法預知的,免費軟體最為常見。另外,由於一些用戶還在使用盜版軟體(包括盜版Win9X),這些盜版軟體在解密過程中會破壞和丟失部分源代碼,使軟體十分不穩定,不可靠,也常常導致「藍屏」。 三、遭到不明的程序或病毒攻擊所至 這個現象只要是平時我們在上網的時候遇到的,當我們在沖浪的時候,特別是進到一些BBS站時,可能暴露了自己的IP,被"黑客"用一些軟體攻擊所至。對互這種情況最好就是在自己的計算機上安裝一些防禦軟體。再有就是登錄BBS要進行安全設置,隱藏自己IP。 四、版本沖突 有些應用程序需調用特定版本的動態鏈接庫DLL,如果在安裝軟體時,舊版本的DLL覆蓋了新版本的DLL,或者刪除應用程序時,誤刪了有用的DLL文件,就可能使上述調用失敗,從而出現「藍屏」。不妨重新安裝試一試。 五、注冊表中存在錯誤或損壞 很多情況下這是出現「藍屏」的主要原因。注冊表保存著Win9X的硬體配置、應用程序設置和用戶資料等重要數據,如果注冊表出現錯誤或被損壞,就很可能出現「藍屏」。如果你的電腦經常出現「藍屏」,你首先就應考慮是注冊表出現了問題,應及時對其檢測、修復,避免更大的損失。 六、軟硬體不兼容 新技術、新硬體的發展很快,如果安裝了新的硬體常常出現「藍屏」,那多半與主板的BIOS或驅動程序太舊有關,以致不能很好支持硬體。如果你的主板支持BIOS升級, 應盡快升級到最新版本或安裝最新的設備驅動程序。
㈥ 常見的中間件有哪些
第一款:tomcat
tomcat是一款Java語言servlet標准化的伺服器軟體。適用於本地開發、小項目或個人開發,Apache為HTML頁面服務,而tomcat實際操作JSP頁面和servlet,但是tomcat處理靜態html的能力不如Apache伺服器。
特點:支持最新標准、更新快、跨平台、體積小安裝部署方便。
第二款:weblogic
大型項目或商業項目,Java動態功能和Java
Enterprise在大型網路應用的開發、集成、部署和管理中,引入了標準的安全性bea公司生產的基礎j2ee架構中間件。
特點:簡化了可移植和可擴展應用系統的開發,為其他應用系統和系統提供了豐富的可操作性;商業軟體功能齊全強大,主要用於大型企業的大型項目;是一種高擴展的架構體系。
第三款:jetty
jetty是使用Java語言編寫,jetty運行速度快,輕量級,在Java中可以從test
case控制其運行。從而使自動化測試不再依賴外部環境,順利實現自動化測試。
特點:易用、可擴展、易嵌入;快速高效。
第四款:JBoss
管理EJB容器和伺服器,JBoss遵循商業友好LGPL授權分發,由開源社區開發。
特點:應用伺服器也有許多優秀的特點;內存和硬碟空間相對較小;安裝方便,解壓後,只需配置一些環境變數即可;JBoss支持集群等。