- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在配置我的 Resteasy 应用程序,需要关闭自动扫描(两个 jaxrs 应用程序位于类路径中,并且在加载时中断)
因此,我将 web.xml 配置如下:
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>
io.swagger.jaxrs.listing.ApiListingResource,
com.mycompany.resource.ClientResource,
com.mycompany.resource.AccountResource,
... etc
</param-value>
</context-param>
在resteasy中是否有任何方法可以通过包(com.mycompany.resource.*
)名称进行扫描,而不必添加每个资源?看来 jaxrs 是可能的,但不轻松
最佳答案
文档非常清楚:
A comma delimited list of fully qualified JAX-RS resource class names you want to register
您可以使用 reflections 自行实现此功能图书馆。假设以下文本文件:
com.foo.bar.TestResource
com.foo.baz.*
我们可以在Application类中读取这个文本文件,搜索所有类并将其添加到getClasses
返回的Set中:
@ApplicationPath("/")
public class RestApplication extends Application {
Set<Class<?>> classes;
public RestApplication(@Context ServletContext servletContext) {
classes = new HashSet<>();
try {
URI resourcesConfig = servletContext.getResource("/WEB-INF/resources.txt").toURI();
List<String> resources = Files.readAllLines(Paths.get(resourcesConfig), Charset.forName("UTF-8"));
for (String resource : resources) {
parseResources(resource);
}
} catch (IOException | URISyntaxException | ClassNotFoundException ex) {
throw new IllegalArgumentException("Could not add resource classes", ex);
}
}
private void parseResources(String resource) throws ClassNotFoundException, IOException {
if (!resource.endsWith(".*")) {
classes.add(Class.forName(resource));
return;
}
String pkg = resource.substring(0, resource.length() - 2);
Reflections reflections = new Reflections(pkg);
for (Class<?> scannedResource : reflections.getTypesAnnotatedWith(Path.class)) {
classes.add(scannedResource);
}
}
@Override
public Set<Class<?>> getClasses() {
return classes;
}
}
注意:我们仅在类级别添加带有 @Path
注释的资源。
关于java - 通过包名扫描resteasy资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614046/
安装flutter_ffmpeg时我应该设置包名 安卓/build.gradle ext { flutterFFmpegPackage = "" } 并在 ios/Podfile if plu
我克隆了 sms-backup-plus存储库。这是 eclipse 的存储库文件夹结构。 但是项目中的包名称是com.zegoggles.smssync;。所以我收到错误声明的包与预期的包不匹配。我
这个问题在这里已经有了答案: Rename package in Android Studio (55 个答案) 关闭 4 年前。 你好,有什么方法可以使用这种格式重命名包名吗 live.compa
是否有合法的“通用”包名称可用于开源一些演示代码? 我想通过 Google Code 或任何地方提供演示 Android 应用程序的源代码作为“公共(public)域”,但我希望源代码包是“通用的”。
我的域名是3DTOPO.com。显然java不允许包域名以数字开头。 为什么Java反向域名不遵循与域名相同的规则?我真的不想将我的包命名为 com.threedtopo.... 首先,这不是我的域名
我们在AndroidManifest.xml中声明的包名是一个应用程序的唯一ID。为了避免命名冲突,我们通常在这个包名中使用域名,例如“com.google.*”。这样的话,就没办法避免其他人在他们的
在《OCA Java SE 7 Programmer I Study Guide》一书中找到了java.*和javax.*是非法(保留)包名的资料。当我尝试创建包“java”并从中运行类时,我收到:
在我深入研究 Java API 的过程中,我遇到了 impl 和 internal 包。到目前为止,我从未真正考虑过其中的区别 - 与所有企业级 Java 应用程序一样,我认为它们只是意味着“此处的实
当我去https://packagist.org/packages/submit提交我的包裹。 显示此错误, The package name apzentral/ink is invalid, it
所以我有基础应用程序类 DApp。 我的 flavor 应用程序类只是扩展了 DApp。 例如 package com.d.android; public class App extends DApp
我有一个模板 应用程序,可以根据客户的品牌轻松更改配置参数来重新设计外观。在 Google Play 上发布时,我显然需要更改 AndroidManifest.xml 上的 packagename。
我正在使用此命令获取 logcat: C:\abs\adb logcat >> "Testdata".txt 这是收集设备上发生的所有日志。 但我只想获取“特定于应用程序”的日志,有人可以帮我吗? 我
我是一名优秀的程序员,十分优秀!