【问题标题】:Can I run a Grails war under Tomcat in a machine without JDK (Only JRE)?我可以在没有 JDK(仅 JRE)的机器上在 Tomcat 下运行 Grails 战争吗?
【发布时间】:2011-02-17 19:00:04
【问题描述】:

我可以在没有 JDK(仅 JRE)的机器上在 Tomcat 下运行 Grails 战争吗?

我有一个 Grails 应用程序,可以在 grails run-war 或同一台计算机的单独 tomcat 服务器中正常工作。

当我在有 JDK 的服务器上部署这个 .war 时,我没有问题。

当我尝试在只有 JRE 的服务器上执行此操作时,应用程序将无法运行。

规格

grails 应用程序

  • grails 1.2.2.
  • groovyWS,
  • i18n 模板

开发电脑

  • win xp sp3
  • 2GB 内存
  • 速龙 64 x 2
  • java:构建 1.6.0_20-b02 (JDK)
  • tomcat:6.0.24(测试1)
  • tomcat 5.5(测试2)

服务器不工作

  • 所以:windows server 2003
  • 应用服务器:tomcat 2.2 即服务,
  • java: 1.6.0.18 ,(仅 JRE)
  • wsclient: groovyws-0.5.1.jar (minimal)(以及手动添加的所有依赖项)

堆栈跟踪

[ERROR] IOException during exec() of compiler "javac". Check your path environment variable.
2010-03-18 15:55:23,522 [http-8080-1] ERROR dynamic.DynamicClientFactory  - Could not compile java files for http://SOMEURL/SOMEWS.asmx?WSDL.
2010-03-18 15:55:23,553 [http-8080-1] ERROR errors.GrailsExceptionResolver  - "org.tempuri" doesnt contain ObjectFactory.class or jaxb.index
javax.xml.bind.JAXBException: "org.tempuri" doesnt contain ObjectFactory.class or jaxb.index
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:197)
    at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
    at javax.xml.bind.ContextFinder.find(Unknown Source)
    at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:349)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:196)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:175)
    at groovyx.net.ws.AbstractCXFWSClient.createClient(AbstractCXFWSClient.java:198)
    at groovyx.net.ws.WSClient.initialize(WSClient.java:107)
    at groovyx.net.ws.IWSClient$initialize.call(Unknown Source)

【问题讨论】:

  • 我可以在没有 JDK(仅 JRE)的机器上在 Tomcat 下运行 Grails 战争吗?:问题将是:“我可以在没有 JDK 的机器上与 Web 服务运行战争吗”:答案将是不。

标签: web-services tomcat grails java


【解决方案1】:

GroovyWS 需要 javac 来动态创建存根,所以它需要 JDK。

【讨论】:

  • “我可以在没有 JDK 的机器上运行 Web 服务吗”:答案是否定的。正如wanderson所说,需要jdk,另一件事是它必须在路径中。
【解决方案2】:

JSP 需要被编译(即使他们在战争中),所以需要一个编译器。您不能只使用 JRE。这适用于 Java 的东西,对于 groovy 来说很可能是一样的。

【讨论】:

  • 所以它可能是一个 JDK,它不在路径上只是 java_home。 (无法检查,这家伙 @ 服务器今天关闭 =/ )。我想问题是:我可以在路径上没有 java_home 的情况下使用 grails 战争吗?
猜你喜欢
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 2016-01-18
  • 2016-09-25
相关资源
最近更新 更多