解决方案 »

  1.   

    报错的类里面没有getPortClassMap()方法。。
      

  2.   

    创建 Service 的代理的时候没有使用 jdk 自带的 javax.xml.ws.spi.Provider,而是使用了 xfire 包中的 javax.xml.ws.spi.Provider
    把 xfire 包中的 jaxws 子包删除掉就可以了
      

  3.   

    java.lang.NoSuchMethodException: test.jax.HelloWorldSimple.getPortClassMap()你的class里就没有这个方法:getPortClassMap()
      

  4.   

    没看到哪个地方调用getPortClassMap()  啊
      

  5.   

    javax.xml.ws.Service 它调用的,它的构造函数调用了 javax.xml.ws.spi.Provider 来创建 Service 类的代理。你按引用说的,删了试试
      

  6.   

    谢谢楼上的建议,我按照楼上说的删除Provider.class就好了。 
    具体操作:
    删除xfire-all-1.2.6.jar 中org.codehaus.xfire.jaxws.Provider.class 就好了。感谢大家的帮助
      

  7.   


    您好,我这边也出现和您一样的异常,按照您说的方法,删除xfire-all-1.2.6.jar 中org.codehaus.xfire.jaxws.Provider.class后,再次运行程序发现找不到类了,是其他地方还需要引用什么包吗?
      

  8.   


    您好,我这边也出现和您一样的异常,按照您说的方法,删除xfire-all-1.2.6.jar 中org.codehaus.xfire.jaxws.Provider.class后,再次运行程序发现找不到类了,是其他地方还需要引用什么包吗?哥们,我和你的情况差不多,你最后怎么解决的啊?我也是干掉 jaxws 子包之后报找不到类了,你要是知道的话,请告诉我,谢谢
      

  9.   

    版主,你好,求教这个问题啊,我干掉xfire-all-1.2.6.jar后,它报找不到Provider,这个怎么解决啊, public ServiceDelegate(URL wsdlLocation, QName serviceName, Class clientClass)
      {
        this.wsdlLocation = wsdlLocation;
        this.serviceName = serviceName;
        try
        {
          Method method = clientClass.getMethod("getPortClassMap", new Class[0]);      Map port2Class = (Map)method.invoke(null, new Object[0]);
          for (Iterator itr = port2Class.entrySet().iterator(); itr.hasNext(); )
          {
            Map.Entry entry = (Map.Entry)itr.next();        QName port = (QName)entry.getKey();
            Class clazz = (Class)entry.getValue();        Service service = getService(clazz);
            this.port2Service.put(port, service);
            this.intf2service.put(clazz, service);
          }
        }
        catch (Exception e)
        {
          throw new IllegalStateException("Could not initialize Service.", e);
        }
      }
    如果把ServiceDelegate.class中,关于 clientClass.getMethod("getPortClassMap", null);  这里改为null,不知道会怎么样?
      

  10.   

    版主,你好,求教这个问题啊,我干掉xfire-all-1.2.6.jar后,它报找不到Provider,这个怎么解决啊, public ServiceDelegate(URL wsdlLocation, QName serviceName, Class clientClass)
      {
        this.wsdlLocation = wsdlLocation;
        this.serviceName = serviceName;
        try
        {
          Method method = clientClass.getMethod("getPortClassMap", new Class[0]);      Map port2Class = (Map)method.invoke(null, new Object[0]);
          for (Iterator itr = port2Class.entrySet().iterator(); itr.hasNext(); )
          {
            Map.Entry entry = (Map.Entry)itr.next();        QName port = (QName)entry.getKey();
            Class clazz = (Class)entry.getValue();        Service service = getService(clazz);
            this.port2Service.put(port, service);
            this.intf2service.put(clazz, service);
          }
        }
        catch (Exception e)
        {
          throw new IllegalStateException("Could not initialize Service.", e);
        }
      }
    如果把ServiceDelegate.class中,关于 clientClass.getMethod("getPortClassMap", null);  这里改为null,不知道会怎么样?不是干掉xfire-all-1.2.6.jar,是干掉它下面的jaxws子包,后报找不到………………
      

  11.   

    朋友,你搞定了么?
    我猜你是用的jdk1.7或者以上版本吧?
    我也出现了楼主的问题,并且也去掉jaxws子包,在jdk1.6下成功运行了
    可是由于我们服务器是jdk1.7,结果就出现了新的问题, 
    java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: Provider org.codehaus.xfire.jaxws.Provider not found
     其中 GeneralmdmdatareleaseClientEp 是webservice client 类, 我还是不知道该怎办办呀求助