『壹』 java中運行bat文件怎麼才能不產生dos窗口,不帶閃的
解決不彈框只需要「start」後面加一個參數「/b」就行:
Runtime.getRuntime().exec("cmd.exe /C start /b D:\\test.bat");
『貳』 webService Client.invoke()的錯誤該如何處理
自定義定義的數據類型或者是類,在傳輸序列化時要進行標記「特性」,否則不能識別。wcf中就是用KnowType來識別
『叄』 為啥學java比學.net累那麼多,坑坑哇哇的,真搞不懂java除了免費開源以外,哪點比得上.net
java和.net並沒有哪個累哪個不累之說,你會.net學java也很快,編程思路是一樣,就是語法框架不同,但是同一種語言,也有不同的框架。所以無論你學什麼語言,其實都差不多的。.net的生態做的不如java。早期的java因為開源迅速佔領的很多領域,很多項目都用java寫的,以至於現在很多項目仍然延續。
一個人更換語言是容易的,但是一個公司更換一套語言,帶來的麻煩相當多。現在.net也學習java那一套,但是市場已經被佔領了,想要再讓用戶回來,怕是不容易的。
java火依靠兩個時代的加速,一個是互聯網時代,就是用戶通過瀏覽器訪問伺服器的業務大量普及,java憑借跨平台特性(非windows伺服器成本低啊)大火了一陣。
之後,移動互聯網的到來。java又藉助安卓系統,在移動端又火了一次。兩把火把java燒的紅彤彤的。
java本身也有很多問題。但是並不致命,都是可以接受的方案。需知道java不會永久適用,java的時代也會慢慢被淘汰。隨著安卓時代的離去,未來的java還能火嗎?
『肆』 如何使用axis2生成wcf客戶端代碼
下載axis2-1.5.4-bin.zip文件並解壓。
設置axis2的環境變數,如下圖所示:
利用axis2中的wsdl2java.bat生成客戶端程序。
先啟動Tomcat7並在IE里運行http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl 看看服務端是否正常解析。
%AXIS2_HOME%binwsdl2java -uri http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl -paxis2.service.server -o stub
其中-uri參數指定了wsdl文件的路徑,可以是本地路徑,也可以是網路路徑。-p參數指定了生成的Java類的包名,-o參數指定了生成的一系列文件保存的根目錄。在執行完上面的命令後,讀者就會發現在當前目錄下多了個stub目錄,可以找到一個HelloServiceStub.java文件,該文件復雜調用WebService,讀者可以在程序中直接使用這個類。
運行-->cmd-->具體命令如下:
要先進入axis2的bin目錄然後運行wsdl2java.bat
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:Documents and SettingsJambhala>d:
D:>cd D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>wsdl2java -uri http://l
ocalhost:8081/TestAxis2Ws/services/HelloService?wsdl -p axis2.service.server -o
stub
Using AXIS2_HOME: D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4
Using JAVA_HOME: C:Javajdk1.6.0
Retrieving document at 'http://localhost:8081/TestAxis2Ws/services/HelloService?
wsdl'.
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>
這時到axis2的bin目錄下會發現出現了一個stub目錄,如下圖所示:
其中HelloServiceStub.java是客戶端程序,HelloServiceCallbackHandler.java是非同步客戶端程序。
把這兩個類復制到上次已經建立好的服務端工程里
注意:這個地方復制進來後會報錯的,因為在D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4binstubsrcaxis2serviceserver下的類路徑為package axis2.service.server;需要改成packageaxis2.service.client;並且需要把HelloServiceStub.java和HelloServiceCallbackHandler.java相關的報錯位置都把路徑改一下,不要閑煩,要改的地方還滿多的呢。
創建帶main方法的StubClient.java類文件,代碼如下:
package axis2.service.domain;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import axis2.service.client.HelloServiceStub;
public class StubClient {
public static void main(String[] args) {
HelloServiceStub stub = null;
try {
stub = new HelloServiceStub();
HelloServiceStub.SayHello sh = new HelloServiceStub.SayHello();
sh.setName("於士博");
System.out.println(stub.sayHello(sh).get_return());
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}