4

我有一个一直在 Netbeans 中开发的企业应用程序,现在我正在尝试将一些 RESTful Web 服务添加到 -war 模块。我遇到的问题是,当我使用 Netbeans 功能创建 Web 服务时,没有创建 ApplicationConfig.java 类。

我在网上找到的所有示例和教程都解释说,Netbeans 将自动生成一个扩展 Application 的 ApplicationConfig.java 类,通过编辑此类上的 @ApplicationPath 注释,我可以配置 Web 服务所在的 URI可达。事实上,如果我从头开始创建一个新的 Java EE 应用程序,然后从 Patterns 调用 New --> RESTful Web Services,这正是它的工作方式。但是当我用我正在开发的 Netbeans 项目尝试这个时,没有创建 ApplicationConfig.java。

我的问题:

1)知道为什么会这样吗?Netbeans错误?是否存在一些 Netbeans 不创建 ApplicationConfig 的已知情况?

2)我可以自己手动创建一个 ApplicationConfig.java 吗?我见过使用空 ApplicationConfig 类的示例(不使用 Netbeans),该类除了提供放置 @ApplicationPath 注释以允许配置 URI 的该部分之外什么都不做。如果我这样做,Netbeans 会感到困惑吗?

3) 我看到当 Netbeans 创建这个类时,它包含覆盖 Application.getClasses 方法的代码。手动创建我自己的代码看起来很简单,它的作用与自动生成的代码完全相同。我需要吗?

我的环境的详细信息是:

  • 产品版本:NetBeans IDE 8.1(内部版本 201510222201)
  • 更新:NetBeans IDE 已更新至 NetBeans 8.1 Patch 1 版本
  • 爪哇:1.8.0_92;Java HotSpot(TM) 64 位服务器 VM 25.92-b14
  • 运行时:Java(TM) SE 运行时环境 1.8.0_92-b14
  • 系统:在amd64上运行的Windows 7 6.1版;CP1252; en_US (注)
  • 项目类型:Java EE 7 应用程序
  • 服务器:Wildfly 9.0.2

谢谢!

邓肯

4

4 回答 4

2

是的,您可以手动创建它,但您必须在与您的 WebServicesClasses 相同的包中创建它,例如:

import java.util.Set;
import javax.ws.rs.core.Application;

@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<>();
        addRestResourceClasses(resources);
        return resources;
    }
    private void addRestResourceClasses(Set<Class<?>> resources) {
        //add all resources classes
        resources.add(jaca.server.webservice.PersonWebService.class);
    }
}

清理并构建您的项目,或重新启动您的 netbeans,因为第一次不起作用。

于 2016-05-15T07:34:43.437 回答
1

NetBeans 也没有ApplicationConfig.java为我创建。问题是我创建了一个 Web 应用程序项目,然后添加了我的资源(REST 操作)。

但是,如果我创建 Web 应用程序项目并在添加我自己的资源之前添加“来自模式的新 RESTful Web 服务” ,那么它会自动为我创建 ApplicationConfig。

于 2017-06-22T08:03:43.587 回答
1

不确定这是否仍然相关,但我在 Netbeans 8.2 上遇到了同样的问题,经过一番折腾,我设法通过更改项目名称自动创建了 ApplicationConfig.java 文件。所以我猜如果你第一次创建项目并尝试删除并创建一个同名的项目,它不会创建文件。希望对某人有所帮助。

于 2018-12-05T18:21:09.617 回答
0

添加注释后,NetBeans 在类名称中添加了一些提示,它必须为您提供添加 ApplicationConfig.java 类的选项,以及与 Jersey 相关的其他选项。

于 2017-04-27T03:49:20.300 回答