使用WSGEN生成工件时“缺少SEI”

时间:2012-11-01 15:27:07

标签: java web-services jaxb jax-ws wsgen

我是Web服务开发的初学者。我想使用wsgen.exe生成工件。

这是我的代码:

  package com.calc.ws;

  import javax.jws.WebService;

  @WebService
  public class Calculator {
      public int add(int a, int b) {
          return (a + b);
      }
      public int sub(int a, int b) {
          return (a - b);
      }
  }

我遇到的问题是当我想使用此命令从命令行生成工件时(一个衬垫):

C:\Program Files\Java\jdk1.7.0_05\bin\wsgen 
     -cp "c:\users\mico\workspaceSOA\calcWS\src\com.calc.ws.Calculator" 
     -verbose 
     -d "C:\users\mico\classes\"

我收到此错误:

Missing SEI.

造成这种情况的原因是什么?

4 个答案:

答案 0 :(得分:4)

以下列方式调用Wsgen.exe:

WSGEN [options] <SEI>

reads a web service endpoint implementation class (SEI)并为Web服务部署和调用生成所有必需的工件。

在您发布的命令行中我只看到选项,您没有指定SEI。从这里得到消息“Missing SEI”(即你没有提供强制命令行参数)。

我不知道你的确切设置,但如果我有这个结构:

c:\temp
├───classpath
│   └───com
│       └───calc
│           └───ws
│               └───Calculator.class
└───generated

如果我跑(在一条线上):

wsgen -cp c:\temp\classpath 
      -keep 
      -s c:\temp\generated 
      com.calc.ws.Calculator

我会得到我的课程,但如果我只是运行:

wsgen -cp c:\temp\classpath 
      -keep 
      -s c:\temp\generated 

我会得到:

Missing SEI

答案 1 :(得分:1)

The error "Missing SEI" means Service Endpoint Interface is missing. Please create an interface for your service. please refer below code:

Service Interface:
package com;
import javax.jws.WebService;

@WebService
public interface Calculator {
    public int add(int a, int b);
    public int sub(int a, int b);
}

Service Class implementing Service Interface:
package com;

import javax.jws.WebService;

@WebService
public class CalculatorImpl implements Calculator {
    public int add(int a, int b) {
        return (a + b);
    }
    public int sub(int a, int b) {
        return (a - b);
    }
}

Command which i have used is:
>wsgen -cp . com.CalculatorImpl -keep -verbose -d ./stub

Before executing above please make sure that destination folder stub is already created.

Please try and let me know if still you are facing issue in this...

答案 2 :(得分:0)

在我的情况下,我正在从JAX-RPC迁移到JAX-WS,并且我更改了包名称。通过更改它,我将不得不更改xml文件中的所有映射,例如在webservices.xml中。如果您收到“缺少SEI”错误,那么一个简单的解决方案就是查找并删除 webservices.xml 文件,您最好使用JAX-WS

答案 3 :(得分:0)

对于我来说。这项工作。

  1. cd {project_path} / bin
  2. “ C:\ Program Files \ Java \ jdk1.7.0_05 \ bin \ wsgen”  -cp。 com.calc.ws.Calculator  -冗长  -d“ C:\ users \ mico \ classes \”
  3. 完成。