首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Grizzly作为web服务引擎

使用Grizzly作为web服务引擎
EN

Stack Overflow用户
提问于 2014-01-27 12:46:45
回答 2查看 811关注 0票数 2

我正在尝试创建一个灰熊web服务引擎,但是缺少一些元素。

这里是我想做的事情:

  • 将灰熊服务器创建为可执行的jar (这是可以的)
  • 此服务器必须能够查看用于web服务归档的文件夹(包含在jar或war或其他文件中)。
  • 服务器应该公开这个web服务。

我已经知道的:

  • web服务可以构建为servlet (似乎Grizzly能够运行servlet,但我没有找到任何关于如何加载包含在".war“或其他中的外部服务器的内容)
  • 我试图使用ClassLoader加载在".jar“中导出的JAX-RS2 RS2服务,但是@path绑定没有工作(我可能遗漏了一些东西)。

我想知道的是:

  • web服务档案应该使用哪种类型的存档?
  • web服务应该是servlet吗?在这种情况下,如何使用Grizzly动态加载servlet?
  • 我走错方向了吗?

这里是我对类加载器所做的工作

代码语言:javascript
复制
File file  = new File("c:\\Users\\User\\Desktop\\myresource.jar");
 URL url = file.toURI().toURL();  
 URL[] urls = new URL[]{url};
 ClassLoader cl = new URLClassLoader(urls);

URLClassLoader child = new URLClassLoader (urls, this.getClass().getClassLoader());

Class<?> classToLoad = Class.forName ("Test.ExternalWS.MyResource", true, child);
Method method = classToLoad.getDeclaredMethod ("getIt");
Object instance = classToLoad.newInstance ();
Object result = method.invoke (instance);
this.WSInstance = classToLoad.newInstance();
  • 这是webservice @Path(" MyResource ")公共类MyResource{ @GET @Produces(MediaType.TEXT_PLAIN)公共字符串getIt() {返回“GET!”;} }

当我试图到达localhost:8080/./myresource时,什么都不会发生。

我试过所有可能的urls并放置一个断点..。一直没到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-27 18:49:11

不知道你用的是哪个泽西版本。在泽西岛,我让它这样运作:

代码语言:javascript
复制
    File file = new File("/path/resource1.jar");
    URL url = file.toURI().toURL();
    URL[] urls = new URL[]{url};
    ClassLoader cl = new URLClassLoader(urls, Main.class.getClassLoader());

    ResourceConfig rc = new ResourceConfig()
            .setClassLoader(cl)
            .files("/path/resource1.jar");
    HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(
            BASE_URI, rc);

也许还有更优雅的方式..。

票数 1
EN

Stack Overflow用户

发布于 2015-07-28 21:39:37

你用的是灰熊1.x还是2.x分支?

我在灰熊1.x里开发灰熊Deployer。如果源代码能满足您的需要,您应该检查它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21381305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档