当前位置: 首页 > 知识库问答 >
问题:

加载到AXIS2时在Clojure get java.lang.ExceptioninInitializerError中生成的

国言
2023-03-14

使用如下所示的代码生成类问候语。

project.clj

   (defproject greeting "0.1.0-SNAPSHOT"
     :description "FIXME: write description"
     :url "http://example.com/FIXME"
     :license {:name "Eclipse Public License"
     :url "http://www.eclipse.org/legal/epl-v10.html"}
     :dependencies [[org.clojure/clojure "1.7.0"]]
     :aot [greeting.core]
    )

src/greeting/core.clj

(ns greeting.core
  (:gen-class
   :name Greeting
   :init create
   :constructors {[String] []}
   :methods [(greet [String] String)] 
   :state data))

(defn -create
  "Construct instance with a String."
 [s]
 [[] ;; super class args
  s])

(defn -greet
 "Return greeting based on the constructed data."
  [this n]
  (str (.data this) " " n "!"))
  lein uberjar

共有1个答案

澹台志诚
2023-03-14

对于Axis2,为每个服务使用单独的类加载器,Clojure类加载器默认情况下使用上下文类加载器,因此当加载jar文件时,AOT-class中的Clojue对象将由Clojure类加载器加载,Clojure类加载器和上下文类加载器没有关于jar路径的信息,因此无法找到core__init.Class。

要解决这个问题,可以使用Axis2的costum部署器重载depoly方法,并将上下文类加载器设置为与服务类加载器相同。

这个答案对我帮助很大。其他一些参考资料可以给你一个提示。谢谢大家!

 类似资料:
  • 我在eclipse和我的应用程序中使用gradle插件。gradle文件我有依赖关系: 当我做gradle的时候- 编辑:这是我的仓库: }

  • 我们正在使用axis2和WS策略,如下所示: 带有loadpPolicy代码: 当我们执行通话时,我们看到: wsse: UsernameToken xmlns: wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"wsu: Id="UsernameToken-1" 我们希望

  • 我正在尝试从多个 WSDL 文件生成 Axis2 (v1.6.1) Web 服务客户端代码,以便我可以在单个项目中拥有多个 Web 服务客户端。我正在使用 Ant 通过代码生成任务生成源代码。 因此,我需要使用自定义命名空间来打包映射,以使每个 Web 服务客户端的代码与其他客户端的代码分开,以避免冲突。 下面是一个示例 WSDL 文件中的命名空间: 我已经设法将生成代码的主体放入适当的包中。我已

  • 有一个典型的我与邮政 职位模型: 迁移后: 评论模型: 评论迁移: 我想在拉威尔使用渴望加载。 例如我怎样才能使用“急切加载”获得他最近评论的所有帖子? 我试过这个: 但像这样,我得到了所有的评论。需要帮忙吗? 最好的问候 编辑: Foreach语句(Blade):

  • 问题内容: 我正在使用Spring 3.0开发一个webapp,处于休眠状态。当我尝试在WAS 7.0上部署我的应用程序时,它给了我错误- 无法加载侦听器:org.springframework.web.context.ContextLoaderListener]:java.lang.ClassNotFoundException: 这是我的网络应用程序的外观: 引发的异常如下: 那么,web.xm

  • 问题内容: Axis2从WSDL生成的客户端存根是否是线程安全的? 当然,“线程安全”并不是严格定义的术语,因此我至少对以下内容感兴趣: 同一个存根类的 不同 实例是否可以由不同线程同时访问,并且具有与单线程执行相同的有效行为? 同一存根类的 单个 实例是否可以由不同的线程并发地以相同的有效行为与相同的调用以某种任意方式在单线程执行中交织在一起? 您可能还希望使用这里描述的术语(和起源于此)来更精