0

我对我的服务器 OSGi 和 JAX-RS 有几个问题。

我使用此教程的配置构建了服务器:

http://eclipsesource.com/blogs/2014/02/04/step-by-step-how-to-bring-jax-rs-and-osgi-together/

我的项目在 Eclipse 中使用这些设置编译没有问题。

当我尝试在 Virgo 中安排它(使用 MANIFEST.MF)时,我收到以下消息:

Date:       2015-08-12
Time:       10:43:35 CEST

Cause: error

Exception:
java.lang.RuntimeException: org.eclipse.virgo.nano.deployer.api.core.DeploymentException: Cannot determine the artifact identity of the file 'C:\Users\...\Desktop\VIRGO-~1.REL\work\org.eclipse.virgo.apps.admin.web.UploadServlet\MANIFEST.MF': uri='file:/C:/Users/.../Desktop/VIRGO-~1.REL/work/org.eclipse.virgo.apps.admin.web.UploadServlet/MANIFEST.MF': uri='file:/C:/Users/.../Desktop/VIRGO-~1.REL/work/org.eclipse.virgo.apps.admin.web.UploadServlet/MANIFEST.MF'
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.doInstall(PipelinedApplicationDeployer.java:168)
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.install(PipelinedApplicationDeployer.java:140)
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.deploy(PipelinedApplicationDeployer.java:253)
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.deploy(PipelinedApplicationDeployer.java:118)
    at org.eclipse.virgo.kernel.deployer.management.StandardDeployer.deploy(StandardDeployer.java:45)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)
    at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)
    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)
    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)
    at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at org.eclipse.virgo.management.console.UploadServlet.doDeployment(UploadServlet.java:132)
    at org.eclipse.virgo.management.console.UploadServlet.doPost(UploadServlet.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:486)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
    at org.eclipse.jetty.server.Server.handle(Server.java:350)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:900)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:954)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:851)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: org.eclipse.virgo.nano.deployer.api.core.DeploymentException: Cannot determine the artifact identity of the file 'C:\Users\...\Desktop\VIRGO-~1.REL\work\org.eclipse.virgo.apps.admin.web.UploadServlet\MANIFEST.MF': uri='file:/C:/Users/.../Desktop/VIRGO-~1.REL/work/org.eclipse.virgo.apps.admin.web.UploadServlet/MANIFEST.MF'
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.determineIdentity(PipelinedApplicationDeployer.java:210)
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.doInstall(PipelinedApplicationDeployer.java:160)
    ... 52 more
Caused by: java.lang.RuntimeException: org.eclipse.virgo.nano.deployer.api.core.DeploymentException: Cannot determine the artifact identity of the file 'C:\Users\...\Desktop\VIRGO-~1.REL\work\org.eclipse.virgo.apps.admin.web.UploadServlet\MANIFEST.MF'
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.determineIdentity(PipelinedApplicationDeployer.java:347)
    at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.determineIdentity(PipelinedApplicationDeployer.java:208)
    ... 53 more

我的问题:

  1. 处女座将目标平台带到哪里?
  2. 为什么我的宣言不想部署到处女座?
  3. 我该怎么做才能在 Virgo 上部署我的服务器?

谢谢你的所有答案。

4

1 回答 1

0

至 1. 处女座不使用目标平台。有关详细信息,请参阅处女座概念。

到 2. 看来您正在尝试单独部署 Manifest 文件。在通过管理控制台部署应用程序之前,您必须先创建一个包。

到 3. 一年前,当我在寻找Dockerizor的示例时,我将您上面提到的示例迁移到了 Virgo 。网上有一个简短的说明。

生成的 Dockerfile 应该会给您一个印象,以便在 Virgo 中运行您的 JAX-RS 应用程序:

  • 安装 Java 7
  • 下载 Virgo Jetty Server 3.6.3.RELEASE

将 JavaSE-1.7 添加到配置文件:

RUN sed -i 's/JavaSE-1.6/JavaSE-1.6,\\\n JavaSE-1.7/' /home/virgo/configuration/java6-server.profile

将 Jetty 端口切换到 9090:

RUN sed -i 's/8080/9090/' /home/virgo/configuration/config.ini

将所需的 Jetty 捆绑包添加到 ${VIRGO_HOME}/repository/ext

RUN curl -L -o /home/virgo/repository/ext/org.eclipse.equinox.http.jetty_3.0.1.v20121109-203239.jar http://archive.eclipse.org/equinox/drops/R-3.8.2-201302041200/org.eclipse.equinox.http.jetty_3.0.1.v20121109-203239.jar
RUN curl -L -o /home/virgo/repository/ext/org.eclipse.equinox.http.servlet_1.1.300.v20120912-130548.jar http://archive.eclipse.org/equinox/drops/R-3.8.2-201302041200/org.eclipse.equinox.http.servlet_1.1.300.v20120912-130548.jar
RUN curl -L -o /home/virgo/repository/ext/com.google.gson_2.1.0.v201303041604.jar http://download.eclipse.org/tools/orbit/downloads/drops/R20140114142710/repository/plugins/com.google.gson_2.1.0.v201303041604.jar

将所需的 JAX-RS 依赖项添加到 ${VIRGO_HOME}/repository/usr

ADD publisher-4.1.jar /home/virgo/repository/usr/
ADD provider-gson-2.0.jar /home/virgo/repository/usr/
ADD jersey-all-2.10.1.jar /home/virgo/repository/usr/
ADD gson-2.2.4.jar /home/virgo/repository/usr/

将打包的示例包添加到 ${VIRGO_HOME}/repository/usr:

ADD jax-rs.jar /home/virgo/repository/usr/

告诉处女座拿起你的申请:

ADD jax-rs-example.plan /home/virgo/pickup/

问候,弗洛里安

于 2015-08-12T16:25:58.510 回答