2010-02-19 81 views
2

我使用axis2-1.5中的wsdl2java生成了.java文件。現在它生成了以下文件夾結構中的文件:src/net/mycompany/www/services/如何使用WSDL2Java生成的文件?

services文件夾中的文件是:SessionIntegrationStub和SessionIntegrationCallbackHandler。

我想現在使用webservice。我將網絡文件夾添加到CLASSPATH環境變量。我的Java文件現在進口使用WebService:

import net.mycompany.www.services; 

public class test 
{ 
    public static void main(String[] args) 
    { 
    SessionIntegrationStub stub = new SessionIntegrationStub(); 
    System.out.println(stub.getSessionIntegration("test")); 
    } 
} 

現在,當我嘗試使用這個編譯:

的javac test.java

我得到:包net.mycompany.www不存在。

有什麼想法?

回答

0

這應該可以說是import net.mycompany.www.services.*;。你錯過了星號。

+0

我試過了。但是現在它找不到生成的存根。我的標題看起來像這樣:package net.mycompany.www.services;導入net.mycompany.services。*,其中當前文件位於services文件夾中。 – vikasde 2010-02-19 20:54:49

2

正如已經建議需要導入生成的存根類,而不是它的包

import net.mycompany.www.services.SessionIntegrationStub; 

然後,您需要填寫您的XML請求對象。我不知道您的WSDL是什麼樣子,但例如

SessionIntegrationStub.SessionRequest req = new SessionIntegrationStub.SessionRequest() 
req.setParamOne(1) 
req.setParamTwo(2) 

最後調用Web服務

SessionIntegrationStub.SessionResponse resp = stub.operationOne(req) 

println resp.getAnswer() 

注意:上述對應於你的模式中聲明元素的getter和setter方法。 SessionRequest和SessionResponse類將對應於您的模式中聲明的複雜類型。

0

問題在這裏是你的包裝結構。你的test.java是在不同的包中,然後是你生成的源文件。

你需要保持當前文件在同一封裝結構或提供的javac的產生源的完整路徑類似

的javac的src/NET/myCompany中/網絡/服務/ 的.java的src/NET/myCompany中/服務/ .java