无法使用来自Java的Web服务

无法使用来自Java的Web服务,java,web-services,axis2,wsdl2java,Java,Web Services,Axis2,Wsdl2java,我使用axis2-1.5的wsdl2java.bat创建了webservice存根。这创建了一个src文件夹,其中包含以下结构: src/net/mycompany/www/services/SessionIntegrationStub.java SessionIntegration.java文件的包是:package net.mycompany.www.services 现在,我试图在java代码中使用这个存根。我将java文件放在同一个services文件夹中。我设置了相同的包。这是我的全

我使用axis2-1.5的wsdl2java.bat创建了webservice存根。这创建了一个src文件夹,其中包含以下结构:

src/net/mycompany/www/services/SessionIntegrationStub.java
SessionIntegration.java文件的包是:package net.mycompany.www.services

现在,我试图在java代码中使用这个存根。我将java文件放在同一个services文件夹中。我设置了相同的包。这是我的全班同学:

package net.mycompany.www.services;
import net.mycompany.www.services;

public class DynamicProxy 
{
  public static void main(String[] args) 
  {
    try 
    {
      SessionIntegrationStub stub = new SessionIntegrationStub();
      System.out.println(stub.getSessionIntegration("test"));
    }
    catch (Exception e) 
    {
      System.out.println(e);
    } 
  } 
}
然后,我尝试使用以下命令编译此代码:

javac DynamicProxy.java
但是,我不断收到以下错误消息:

C:\data\net\mycompany\www\services>javac DynamicProxy.java
DynamicProxy.java:9: cannot find symbol
symbol  : class SessionIntegrationStub
location: package net.mycompany.www.services
import net.mycompany.www.services.SessionIntegrationStub;
                                       ^
DynamicProxy.java:17: cannot find symbol
symbol  : class SessionIntegrationStub
location: class net.mycompany.www.services.DynamicProxy
                        SessionIntegrationStub stub = new SessionIntegrationStub();
                        ^
DynamicProxy.java:17: cannot find symbol
symbol  : class SessionIntegrationStub
location: class net.mycompany.www.services.DynamicProxy
                        SessionIntegrationStub stub = new SessionIntegrationStub();
                                                          ^
3 errors
你知道我在这里遗漏了什么吗

更新1:


由于下面的答案,我编辑了存根,并且排除了第一个错误。我将导入更改为此导入net.americanapparel.www.services.*;但是,我仍然得到SessionIntegrationStub的一个错误:找不到符号。我也尝试了这个导入:net.americanapparel.www.services.SessionIntegrationStub,但也没有帮助。还有什么我遗漏的吗?

您必须首先编译存根,或者同时编译两者,因为wsdl2java只创建一个.java文件,而不是.class文件。编译器错误明确表示它不知道SessionIntegrationStub

另一个答案也是正确的:你必须这样做

import net.mycompany.www.services.*;
不是


你似乎没有导入它

import net.mycompany.www.services.SessionIntegrationStub;
我们应该做到这一点

然后:

shell$ javac my/package/*.java

它应该使javac能够找到或编译它需要的所有文件。

项目根文件夹中的哪个文件夹是SessionIntegrationStub,如果编译了SessionIntegrationStub,那么.class文件位于哪里?所有文件都在同一个目录中。仍然不起作用。我得到的错误与更新1中的错误相同。Javac可以看到包,但不能看到类。但是,我可以看到SessionIntegrationStub.class文件。我肯定错过了一些东西。好吧,它应该在类路径上。这就是为什么我建议在1批javac中编译所有文件…*好的。是的。现在,当我尝试在主线程java.lang.NoClassDefFoundError中执行.class文件:Exception时,我得到了这个结果:C:\data\net\mycompany\www\services\dynamicproxy/java导致:java.lang.ClassNotFoundException:C:\data\net\mycompany\www\services\dynamicproxy.java。我编译了所有java文件,如下所示:javac-cp。C:\data\net\mycompany\www\services*.java忘了提到:我也在尝试这样运行它:javac-cp。C:\data\net\mycompany\www\services\dynamicproxy
shell$ javac my/package/*.java