我使用在axis2-1.5中找到的wsdl2java生成.java文件。现在它生成了这个文件夹结构中的文件:src / net / mycompany / www / services /
services文件夹中的文件是:SessionIntegrationStub和SessionIntegrationCallbackHandler。
我现在想要使用网络服务。我将net文件夹添加到CLASSPATH环境变量中。我的java文件现在使用:
导入webserviceimport 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 :(得分: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()
注意:上面的setter和getter对应于架构中声明的元素。 SessionRequest和SessionResponse类将对应于模式中声明的复杂类型。
答案 1 :(得分:0)
这应该可以说import net.mycompany.www.services.*;
。你错过了星号。
答案 2 :(得分:0)
这里的问题是你的包结构。您的test.java位于不同的包中,然后是您生成的源。
您需要将当前文件保存在相同的包结构中,或者在javac中提供生成的源的完整路径,如
javac src / net / mycompany / www / services / .java src / net / mycompany / services / .java