查看端口使用情況,使用netstat命令。
查看已經連接的服務端口(ESTABLISHED
netstat -a
查看所有的服務端口(LISTEN,ESTABLISHED)
netstat -ap
查看8080端口,則可以結合grep命令:
netstat -ap | grep 8080
如查看8888端口,則在終端中輸入:
lsof -i:8888
若要停止使用這個端口的程序,使用kill +對應的pid即可
以前和數據庫打交道的標準INTERFACE是JDBC,放SQL語句,執行,就可以有結果。隨著近年ORM的興起,以對象的方式存取數據庫大行其道。于是產生了JPA。
也是一套INTERFACE,以ORM的方式提供,由廠商實現,如ECLIPSE LINK,HIBERNATE,OPENEJB等。
ENTITYMANAGERFACTORY:根據配置文件制造ENTITYMANAGER
ENTITYMANAGER:以ORM的方式提供操作數據庫的功能
TRANSACTION:事務保證
PERSISTENCE.XML:鏈接數據庫信息,事務類型,重定義JPA的實現廠商等的配置信息
在容器環境下使用:
如果事務是RESOURCE_LOCAL的方式,則合用端需干所有的事情,如構造ENTITYMANAGER,打開事務,關閉事務等。類似于BMT。
以下是在服務器環境中合用RESOURCE_LOCAL型的JPA
事先要在容器中添加數據源。
persistence.xml
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<!-- Tutorial "unit" -->
<persistence-unit name="Tutorial" transaction-type="RESOURCE_LOCAL">
<non-jta-data-source>myNonJtaDataSource</non-jta-data-source>
<class>org.superbiz.jpa.Account</class>
</persistence-unit>
</persistence>
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceUnit;
public class MyEjbOrServlet

{
@PersistenceUnit(unitName="Tutorial")
private EntityManagerFactory factory;
// Proper exception handling left out for simplicity
public void ejbMethodOrServletServiceMethod()
throws Exception {
EntityManager entityManager = factory.createEntityManager();
EntityTransaction entityTransaction = entityManager.getTransaction();
entityTransaction.begin();
Account account = entityManager.find(Account.
class, 12345);
account.setBalance(5000);
entityTransaction.commit();
}

}
以下是JTA方式的JPA,容器+EJB+JPA+JTA,容器會在EJB的方法調用前打開一個事務,在方法退出后,提交事務,并且如果是多個數據源的,即有多個ENTITYMANAGER的
可以保證一致性,即全局事務。相當于之前的先調用USERTRANSACTION,BEGIN,COMMIT。
事先要在容器中添加數據源。
persistence.xml
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<!-- Tutorial "unit" -->
<persistence-unit name="Tutorial" transaction-type="JTA">
<jta-data-source>myJtaDataSource</jta-data-source>
<non-jta-data-source>myNonJtaDataSource</non-jta-data-source>
<class>org.superbiz.jpa.Account</class>
</persistence-unit>
</persistence>
EJB
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
public class MyEjb implements MyEjbInterface {
@PersistenceContext(unitName = "Tutorial")
private EntityManager entityManager;
// Proper exception handling left out for simplicity
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void ejbMethod() throws Exception {
Account account = entityManager.find(Account.class, 12345);
account.setBalance(5000);
}
}
如果是J2SE環境下使用JPA,則又是不一樣的。
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="SimplePU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.someone.jmail.valueobject.CallActivity</class>
<class>com.someone.jmail.valueobject.Email</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="12345" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="false"/>
<property name="hibernate.hbm2ddl.auto" value="none"/>
</properties>
</persistence-unit>
</persistence>
Dao:
public class UserDaoImpl implements UserDao {
public AccountInfo save(AccountInfo accountInfo) {
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("SimplePU");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(accountInfo);
em.getTransaction().commit();
emf.close();
return accountInfo;
}
}
在 Ubuntu 安裝 java Jdk 很容易
Install-Oracle-Java-7-in-Ubuntu-via-PPA-Repository
安裝 java 很容易 ! (支援 Ubuntu 12.04, 11.10, 11.04 and 10.04)
說在前頭 :
0. 安裝 oracle java jdk (目前是 7u5 版)
0-1. 包含 jdk jre 及 瀏覽器插件 (不能只安裝 jre 或 瀏覽器插件)
0-2. 自動 辨識 64 bits 或 32 bits
0-2. 安裝後 會自動從 ppa:webupd8team/java 套件庫 更新 已安裝套件
0-3. 以後有新版本 這個方法 自動會直接安裝新版本(例如如果有 7u6 版)
1. 安裝指令
2. 看看是否安裝成功
java -version
目前最新版本
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
2-1. 如果上面的指令 得到的版本 不是剛剛安裝的版本
sudo update-java-alternatives -s java-7-oracle
再試一次
java -version
3. 移除 Oracle Java 7
sudo apt-get remove oracle-java7-installer
ETL(Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程),對于企業或行業應用來說,我們經常會遇到各種數據的處理,轉換,遷移,所以了解并掌握一種etl工具的使用,必不可少,這里我介紹一個我在工作中使用了3年左右的ETL工具Kettle,本著好東西不獨享的想法,跟大家分享碰撞交流一下!在使用中我感覺這個工具真的很強大,支持圖形化的GUI設計界面,然后可以以工作流的形式流轉,在做一些簡單或復雜的數據抽取、質量檢測、數據清洗、數據轉換、數據過濾等方面有著比較穩定的表現,其中最主要的我們通過熟練的應用它,減少了非常多的研發工作量,提高了我們的工作效率,不過對于我這個.net研發者來說唯一的遺憾就是這個工具是Java編寫的。
http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply1.html
需求:要抓同一網絡上某一設備,如平板的網絡傳輸包以進行分析,訪問哪些網址等。
軟件:WIRESHARK,金山的WIFI共享
環境:由于WIRESHARK只能抓本電腦(安裝此軟件上的PC)的包,因此要在裝一個無線網卡,再安裝一個金山的WIFI共享軟件,將此無線網卡作為熱點共享出去。另一設備通過WIFI連上此熱點。這樣此設備上的所有都經過此無線網卡,就可以被WIRESHARK抓到。
1.將無線網卡連上路由,產生IP1
2.啟動CONNECTIFY ME,共享來源選IP1
3.客戶端通過WIFI連CONNECTIFY ME
4.則客戶端向INTERNET發送請求時,請求是通過IP1發送的,收到的回應是通過CONNECTIFY ME返回的
使用:打開WIRESHARK,選擇抓哪個網卡,再配置過濾條件,點擊開始即可。現總結了下這個過濾條件:
ip.src == 192.168.1.113 && http.request.method=="GET" && http.user_agent contains "014440000001041"
都是以協議開頭,屬性名稱,表達式符號,屬性值,連接符號,其他表達式的這種格式。
wireshark過濾語法總結
http://blog.csdn.net/cumirror/article/details/7054496