我是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.

是什么原因造成的?

最佳答案

通过以下方式调用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

10-07 20:40