加载到AXIS2时在Clojure get java.lang.ExceptionInInitializeError中生成的类
使用如下代码生成类问候语 project.clj加载到AXIS2时在Clojure get java.lang.ExceptionInInitializeError中生成的类,clojure,wso2,axis2,Clojure,Wso2,Axis2,使用如下代码生成类问候语 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"}
(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 "!"))
这些代码来自。可以从java类调用
现在通过
lein uberjar
并将独立jar作为服务器导入WSO2,得到以下错误
错误:clojure.lang.Namespace处的java.lang.ExceptionInInitializerError。(Namespace.java:34)在clojure.lang.Namespace.findOrCreate(Namespace.java:176)在clojure.lang.Var.internPrivate(Var.java:151)在问候语中。(未知来源)在
java.lang.Class.forName0(本机方法)位于
java.lang.Class.forName(Class.java:278)位于
org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.(DefaultSchemaGenerator.java:140)位于
org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:453)位于
org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:397)位于
org.apache.axis2.deployment.ServiceGroupBuilder.populateServiceGroup(ServiceGroupBuilder.java:101)位于
org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:109)位于
org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:143)位于
org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:82)位于
org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)位于
org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807)位于
org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)位于
org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377)位于
org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254)位于
org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371)位于
org.apache.axis2.deployment.SchedulerTask.checkRepository(SchedulerTask.java:59)位于
org.apache.axis2.deployment.SchedulerTask.run(SchedulerTask.java:67)位于
org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:79)位于
org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:124)位于
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)位于
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)位于
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)位于
位于的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.lang.Thread.run(Thread.java:745)处的java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)由以下原因引起:
java.io.FileNotFoundException:在类路径上找不到clojure/core\uuu init.class或clojure/core.clj。在clojure.lang.RT.load(RT.java:449)处
clojure.lang.RT.load(RT.java:412)在clojure.lang.RT.doInit(RT.java:454)在
clojure.lang.RT.(RT.java:330)。。。30多
我错过了什么吗?或者如何摆脱它?对于Axis2,每个服务使用单独的类加载器,Clojure类加载器默认使用上下文类加载器,因此当加载jar文件时,AOT类中的Clojue对象将由Clojure类加载器加载,Clojure类加载器是上下文类加载器,没有关于jar路径的信息,因此找不到core__init.class 要解决此问题,请使用axis2的costum deployer重载depoly方法, 并将上下文类加载器设置为与服务类加载器相同 给我很多帮助。
有些人可以给你一个提示。谢谢大家 对于Axis2,每个服务使用单独的类加载器,Clojure类加载器默认使用上下文类加载器,因此当加载jar文件时,AOT类中的Clojue对象将由Clojure类加载器加载,而Clojure类加载器,上下文类加载器,没有关于jar路径的信息,因此找不到core__init.class 要解决此问题,请使用axis2的costum deployer重载depoly方法, 并将上下文类加载器设置为与服务类加载器相同 给我很多帮助。
有些人可以给你一个提示。谢谢大家 我发现上面写着“在类路径上找不到clojure/core_uuinit.class或clojure/core.clj”,但这两个文件都在独立jar文件中。您是如何将jar导入wso2as的?在wso2as管理控制台中,主->服务->添加->jar服务,然后按照说明,选择要上载的独立jar文件,下一步,选择问候类,然后下一步,只选择问候方法,然后完成。我发现上面写着“在类路径上找不到clojure/core\uu init.class或clojure/core.clj”,但这两个文件都在独立的jar文件中。您是如何将jar导入wso2as的?在wso2as管理控制台中,Main->Service->Add->jar Service,然后按照说明,选择要上传的独立jar文件,接下来,选择问候语类,然后接下来,只选择问候语方法,然后完成。