从 Java 调用 clojure (Clojure Interop)

2024-02-09

从 Clojoure 调用 Java 非常简单明了,但事实证明反过来是不可预测的。

他们似乎有两种方法:

1)以下课程

      i) import clojure.java.api.Clojure; ,
     ii) import clojure.lang.IFn;

2)将clojure编译成uberjar,然后将其导入java 代码。

我选择了第二个选项,因为它更直接。

这是 Clojure 代码

(ns com.test.app.service
 (:gen-class
       :name com.test.app.service
       :main false
       :methods [^{:static true} [returned [int] int]]))

    (defn returned
      [number]
      (* 2 number))

    (defn -returned
      [number]
      (returned number))

这是 Java 代码。

package com.s.profile;

import java.util.*;
import com.microsoft.azure.serverless.functions.annotation.*;
import com.microsoft.azure.serverless.functions.*;
import com.test.app.service;


/**
 * Azure Functions with HTTP Trigger.
 */
public class Function {
    /**
     * This function listens at endpoint "/api/hello". Two ways to invoke it using "curl" command in bash:
     * 1. curl -d "HTTP Body" {your host}/api/hello
     * 2. curl {your host}/api/hello?name=HTTP%20Query
     */
    @FunctionName("hello")
    public HttpResponseMessage<String> hello(
            @HttpTrigger(name = "req", methods = {"get", "post"}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {
        context.getLogger().info("Java HTTP trigger processed a request.");

        // Parse query parameter
        String query = request.getQueryParameters().get("name");
        String name = request.getBody().orElse(query);

        if (name == null) {
            return request.createResponse(400, "Please pass a name on the query string or in the request body");
        } else {
            service.returned(4);
            context.getLogger().info("process data" );
            return request.createResponse(200, "Hellos, " + name );
        }
    }
}

每当我制作“service.returned(4);”时系统永远不会返回。我不太明白为什么对我来说它就像函数没有从 Clojure 返回一样,但我看不出原因。

只是为了添加一些上下文,我尝试过它是一个简单的 hello world java 应用程序,它只是打印出结果并且它可以工作。当我尝试在 Azure 函数中实现它时。


请参阅此问题以获取运行示例:

如何直接从 Java 调用 Clojure 函数 https://stackoverflow.com/questions/46436476/how-to-invoke-clojure-function-directly-from-java

我建议首先简化您的代码,然后一次一行地添加回 Azure 内容,以防某些交互导致问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Java 调用 clojure (Clojure Interop) 的相关文章

  • java.lang.NoClassDefFoundError: javax/ws/rs/core/Configuration

    我正在实现轻松的网络服务 并且正在使用 jboss 4 0 但我遇到以下异常 java lang NoClassDefFoundError javax ws rs core Configuration 我的 web xml 是
  • H2 - 多个应用程序访问同一个 H2 数据库

    我正在使用嵌入式数据库H2在 2 个网络应用程序中说WebApp1 and WebApp2 我运行 WebApp1 并执行一些查询来访问 H2 数据库 同时我运行 WebApp2 但它抛出异常H2 当前已被另一个进程使用 我的需求是 我应该
  • 通过 JDBC 调用 Sybase 存储过程时结果集为空

    我正在调用一个通过 JDBC 返回多个结果集的 Sybase 存储过程 我需要获取一个特定的结果集 其中有一列名为 结果 这是我的代码 CallableStatement cs conn prepareCall sqlCall cs reg
  • 将图像缩略图上传到服务器,而不上传整个图像

    据我所知 我在这里问的是不可能的 但我想无论如何我都会问 以防我遗漏了什么 假设您想让用户上传 JPG 图像 并且这些图像被缩放为较小的图标 并且原始图像始终被丢弃并且不再需要 有没有什么方法可以在大多数现代浏览器中普遍使用 让用户选择硬盘
  • 全屏独占模式下的 AWT 框架在窗口弹出对话框中最小化

    我正在开发一个在全屏独占模式下使用 awt 框架的应用程序 一切正常 直到弹出窗口可见 这会抢走焦点 我的应用程序将被最小化 这是我的框架的初始化代码 if ApplicationConfig getInstance useFullscre
  • Spring @Transactional 并发

    class MyService 公共无效a 同步 某个键 b Transactional 传播 传播 REQUIRES NEW 公共无效b 数据库工作吗 除非您使用代码编织 否则这是行不通的 Spring处理事务的默认方式是通过AOP代理
  • 使用 viewModel 从 ChildFragment 访问 ParentFragment 中的 ViewModel

    我正在尝试访问ParentViewModel for ParentFragment from ChildFragment using viewModels 这是我的代码 In ParentFragment class ParentFragm
  • 如何从 REstAssured 中的 Json 数组获取 JSON 对象

    任何人都可以帮我解决这个场景 我是新来的RestAssured和处理JSON在我们的自动化脚本中 我有一个API谁的回应是JSONArray i e id 1002 entity testcase fieldName TextName di
  • 如何告诉 Java SAX 解析器忽略无效字符引用?

    当尝试使用字符引用解析不正确的 XML 时 例如 x1 Java 的 SAX 解析器因致命错误而惨死 例如 org xml sax SAXParseException Character reference x1 is an invalid
  • 获取运行时生成的类的字节

    我正在使用一个 Java 框架 该框架使用自定义类加载器在运行时生成一些 代理 类 我想为任何这样的类获取自定义 ClassLoader 从 loadClass 返回的与该类对应的原始字节数组 这可能吗 我知道 如果一个类作为资源存在 那么
  • Java字符串中的字符数[重复]

    这个问题在这里已经有答案了 可能的重复 Java 使用unicode上划线显示平方根时字符串的长度 https stackoverflow com questions 7704426 java length of string when u
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne
  • 如何检查spec/col-of中的不同ID

    s def users s coll of user distinct true 上面的规范要求每个用户映射都是不同的 但是我如何指定它来检查不同的 user ids only 不应允许以下集合 id 10 name Jessica id
  • Jersey bean 验证 ParameterNameProvider

    我正在阅读关于泽西岛的文档Bean验证 https jersey java net documentation latest bean validation html The ParameterNameProvider示例显示如何定义方法的
  • 我可以从同一个 jar 文件执行两个不同的类吗?

    我有一个项目 在一个包中我制作了服务器 在第二个包中我制作了客户端 它运行良好 我想创建一个 Jar 文件 是否可以使用同一个 jar 文件分别运行客户端和服务器 我使用了只有一个 main 的 jar 文件 当我运行 jar 文件时 它会
  • 使用 JPA 和 Hibernate 时 DISTINCT 如何工作

    DISTINCT 在 JPA 中使用什么列 是否可以更改它 以下是使用 DISTINCT 的 JPA 查询示例 select DISTINCT c from Customer c 这没有多大意义 不同的列是基于哪一列 它是否在实体上指定为注
  • 如何使用SAXReader解析GPX文件?

    我正在尝试解析GPX file http en wikipedia org wiki GPS eXchange Format 我用 JDOM 尝试过 但效果不太好 SAXBuilder builder new SAXBuilder Docu
  • Ant 类路径和 junit.jar

    我有一个 build xml 它允许我运行 junit 测试 这是相关部分
  • 如何使用 JRE 部署 JavaFX 11 桌面应用程序

    我有一个 JavaFX JDK 8 桌面业务应用程序 它使用 Java Web Start 进行部署 用户安装了 Java 8 只需访问 URL 我的 AWS Linux 服务器上的公共 URL 即可下载 启动应用程序 使用 Web Sta
  • 在私有 guice 模块中公开 Map

    我在 guice 中有一个 PrivateModule 我想从该模块公开一个 Map public class TestInjectionModule extends PrivateModule expose Map class annoa

随机推荐

  • 使用 JAXB 接口连接 EJB - XML

    我试图将 XML 模式添加到现有的 EJB 项目中 JAXB 用于将 XML 模式绑定到 Java 类 因为我们将在 EJB 处于会话状态时使用搜索引擎来爬取 DTO 我找不到任何将实体类文件映射到 XML 模式的直接方法 到目前为止 我们
  • 从受信任的应用程序访问 OS X 钥匙串项目

    我正在创建一个钥匙串 然后向其中添加一个带有预定义可信应用程序列表的项目 SecKeychainCreate keychainPath UTF8String UInt32 strlen keychainPass keychainPass F
  • 将字符串转换为 java.util.Date

    我有一个字符串作为 strikedate 2011 11 19T00 00 00 000 05 00 我需要将其放入 java util Date 中 谁能告诉我如何将此字符串转换为日期 当然 使用SimpleDateFormat http
  • 在 VBA 函数中访问各个数组元素

    VBA新手在这里 我正在尝试传递一个数组 它是静态的 但也请回答动态范围 到一个函数 然后将各个数组元素分配给唯一变量 并在自定义公式中使用这些变量 我只是浏览了一下并编写了代码 但不断收到 VALUE 错误 代码要点如下 Public F
  • iOS 8 中的自定义振动 - Swift

    我正在快速编写一个基于精灵套件的应用程序 需要使用振动进行简短的触觉反馈 所以首先我导入了 AudioToolbox 并使用了它 AudioServicesPlayAlertSound SystemSoundID kSystemSoundI
  • 映射两个矩阵的像素

    假设我有两个大小如下的矩阵 matrix 1 30090x2 matrix 2 170x177 这里假设数量rows n matrix 1代表数量pixels 你可以看到大小matrix 2等于像素数 我想做的是map中的像素matrix
  • Android随机活动不重复

    我正在开发一个问答游戏 我必须在回答问题时进行随机活动 以避免按相同顺序出现问题 我已经通过使用解决了这个问题switch 然而 问题是我可能会返回到我已经回答过的问题 所以我现在必须编写一些代码来避免玩家通过随机生成器转到之前的问题 到目
  • 如何修复多个样图中的颜色比例尺?

    我正在几个空气质量站之间进行 idw 插值 对于最终的可视化效果 我想将所有制作的图像折叠成 GIF 一切正常 唯一的问题是每个图像中值的比例会发生变化 并且比例会随着值 最小值 最大值 而变化 如何将颜色比例设置为固定值 这是一些示例数据
  • 抓取隐藏数据 [ window.__WEB_CONTEXT__= ] ...最好使用 Scrapy

    我正在爬到到网 我现在的问题是抓取给定酒店的 Hotelstars 不是平均用户评级 bubbles 而是酒店等级评级 稍后我将遇到隐藏在 阅读更多 后面的评论问题 https www tripadvisor com ph Hotel Re
  • 如何获取 Pandas 数据框中的行号?

    如何使用 Pandas 获取数据框中某一列中包含特定值的行号 例如 我有以下数据框 ClientID LastName 0 34 Johnson 1 67 Smith 2 53 Brows 如何找到 姓氏 列中包含 史密斯 的行号 请注意
  • jq 获取父数组中的每个值

    我有如下所示的 json 我希望获得一个输出 其中每个计时器记录包含一行 但包含服务名称 services service name Test Value timer datetime 08 30 2017 16 33 35 value 6
  • 如何使浮动内部div与最高div的高度相同

    在下面的代码中 我希望带有 y 的 div 与带有 3 个 x 的 div 的高度相匹配 div style border 0px solid red margin 0px 0px 5px div style border 1px soli
  • 如何使用 Eclipse 运行 testng 工厂?

    我正在使用 eclipse 2018 09 4 9 0 和 testng 插件 版本 6 14 0 201802161500 我创建了一个 Maven 项目来从教程中学习 testng 我想在 Eclipse 中运行 testng 工厂方法
  • 适用于 Mac App Store 的应用程序在签名后无法运行

    我是 Mac App Store 开发的新手 我正在尝试在开发环境中测试我的第一个签名应用程序 就在进入混乱的收据验证之前 我经历了以下步骤 1 我创建了3个证书 a Mac 应用程序 b Mac 安装程序 c 开发 如果我不创建此证书 则
  • xamarin 形成 DatePicker 取消/确定事件

    我找到并尝试了一个针对 Android Xamarin Forms 的自定义渲染 DatePicker 示例 并且不显示在 UnFocus 中单击了哪个按钮 至少不适合我 它来自 stackoverflow Xamarin Forms An
  • 使用 sFTP 服务面向 Azure 存储 blob

    我们需要创建大型 1G 16G 行数据报告并对其进行压缩和加密 我们的客户将通过 sFTP 使用这些报告 我们正在替换现有的实施 因此我们的客户应该透明地获得此更改 Azure Blob 服务不公开 sFTP 服务 因此我们需要某种方法来使
  • 何时在 Dialogflow 中使用用户实体?

    In 对话流 API ai 中的数据上下文在哪里 https stackoverflow com questions 47591980 where is the data context in dialog flow api ai我问如何保
  • CKEditor:删除“链接类型”选项,但将 URL 设置为默认链接类型?

    我正在使用 CKEditor 的链接插件 并且尝试删除 链接类型 选项 以便用户可以在 URL 字段中输入地址 而不必设置 链接类型 选项 当我使用下面的代码时 它会删除 链接类型 选项 但是当您尝试单击它创建的链接时 它不会按预期打开链接
  • Matplotlib:调整图例位置/位置

    我正在创建一个具有多个子图的图形 这些子图之一给我带来了一些麻烦 因为轴角或中心都没有空闲 或可以释放 来放置图例 我想做的是将图例放置在 左上 和 左中 位置之间的某个位置 同时保持它和 y 轴之间的填充等于其他子图中的图例 即使用预定义
  • 从 Java 调用 clojure (Clojure Interop)

    从 Clojoure 调用 Java 非常简单明了 但事实证明反过来是不可预测的 他们似乎有两种方法 1 以下课程 i import clojure java api Clojure ii import clojure lang IFn 2