小编Mar*_*tus的帖子

OCaml,F#连续,级联让绑定

在OCaml或F#中,典型的形式是连续的let绑定:

let a1 = ...
let a2 = ...
let a3 = ...
let f1 = ...
let f2 = ...
let f3 = ... 
f3 a1 a2 a3
Run Code Online (Sandbox Code Playgroud)

在许多情况下,其中一些允许绑定(例如上面示例中的f1f2)仅用作紧跟在它们之后的表达式或函数的构建块,之后不再引用.在其他情况下,确实在"链"的末尾使用了一些值(例如,上述示例中的a1,a2a3).是否存在任何语法习惯用语来明确范围内的这些差异?

f# ocaml

7
推荐指数
2
解决办法
311
查看次数

从独立部署的战争中访问jar中的EJB3 bean(未包装在耳中)

出于某些原因,我想将我的应用程序部署为两个单独的工件:Users-ejb.jarUsers-war.war,未打包在同一个耳中(但仍然部署在同一个 JBoss AS 7.1实例中).在Users-war.war中,我有一个支持bean(注释为JSF托管bean),我希望在其中注入打包在Users-ejb.jar中的EJB3 .当Users-ejb.jarUsers-war.war单独部署时,当所有内容都打包在单个耳朵中时,简单的@EJB注入不再有效.

我的设置的简化示例如下:

EJB3 bean

import javax.ejb.*;

(...)

@Stateless(name="userFacade")
@Local(IUserFacadeLocal.class)
@Remote(IUserFacadeRemote.class)
public class UserFacade extends AbstractFacade<User> implements IUserFacadeLocal, IUserFacadeRemote {
Run Code Online (Sandbox Code Playgroud)

支持豆

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.ejb.EJB;

import entities.User;
import facades.IUserFacadeRemote;
import facades.IUserFacadeLocal;

@ManagedBean(name="indexBackingBean")
@SessionScoped
public class IndexBackingBean implements Serializable {

    @EJB(beanName="userFacade")
    private IUserFacadeLocal userFacade;
Run Code Online (Sandbox Code Playgroud)

我尝试了各种组合,比如在支持bean中声明EJB3 bean的类型为IUserFacadeRemote(而不是IUserFacadeLocal),但是当部署Users-war.war模块时,它们都会失败并出现相同的异常:

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException:
JBAS014543: No EJB found with interface …
Run Code Online (Sandbox Code Playgroud)

jsf ejb-3.0

7
推荐指数
1
解决办法
8479
查看次数

org.postgresql.util.PSQLException:错误:由于事务之间的读/写依赖性,无法序列化访问

更新:我最终设法在最小的设置中重现这个,我作为一个单独的问题发布.

从同一个PostgreSQL实例和表并行运行的两个不同应用程序进行JDBC插入时,我遇到了以下异常:

 org.postgresql.util.PSQLException: ERROR: could not serialize access due to read/write dependencies among transactions
 [java] ERROR>  Detail: Reason code: Canceled on identification as a pivot, during write.
 [java] ERROR>  Hint: The transaction might succeed if retried.
Run Code Online (Sandbox Code Playgroud)

尝试执行以下语句时发生异常:

public int logRepositoryOperationStart(String repoIvoid, MetadataPrefix prefix, RepositoryOperation operation, int pid, String command, String from_XMLGregCal) throws SQLException {
    Connection        conn = null;
    PreparedStatement ps   = null;
    try {
        conn = getConnection();
        conn.commit();
        String SQL = "INSERT INTO vo_business.repositoryoperation(ivoid, metadataprefix, operation, i, …
Run Code Online (Sandbox Code Playgroud)

postgresql jdbc

7
推荐指数
1
解决办法
8943
查看次数

Chrome DOM中的空白文本节点

下面的HTML:

    <html>
      <body>
          <label>field a</label>
          <input  name="foo1" value=""/><br/>
          <label>field b</label><input name="foo2" value="" /><br/>
      </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

…由于label第一个input元素与第一个元素之间的空白,使字段的输入稍微偏右。但是,查看Chrome中的DOM会看到以下内容:

在此处输入图片说明

即,在DOM中没有文本节点的表示。由于浏览器使用额外的空间来呈现它,所以我认为正在发生的事情是DOM中确实存在空格,但是由于某些原因DOM查看器无法显示它。如果我理解正确,Firefox DevTools实际上会显示空白文本节点(请参阅此博客文章)。Chrome有类似的功能吗?

html firefox dom google-chrome

7
推荐指数
1
解决办法
512
查看次数

从控制台检查库(.cma)签名

假设我有一个OCaml库文件foo.cma.是否有一个命令行工具来打印函数的签名和那里定义的其他类型?ocamlbrowser实用程序似乎是基于Windows的(抱怨$ DISPLAY环境变量).用例是我正在做的:

ocamlc -c foo.cma main.ml
Run Code Online (Sandbox Code Playgroud)

得到:

File "main.ml", line 13, characters 33-47:
Error: Unbound value ListUtil.split
Run Code Online (Sandbox Code Playgroud)

ListUtil.split应该驻留在foo.cma中,但我不知道一个基于控制台的工具来验证它.

ocaml

6
推荐指数
2
解决办法
258
查看次数

Clojure ::获取列表的单个元素,如果列表包含多个元素,则抛出异常

我知道在我的代码中的某个点,列表只有一个元素,所以我用它来获取它

(first alist)
Run Code Online (Sandbox Code Playgroud)

但是如果列表有多个元素来提醒我错误的情况,我也希望代码能够破解.在Clojure中实现这一目标的惯用方法是什么?

clojure

6
推荐指数
2
解决办法
781
查看次数

Java中的OAI-PMH 2.0库

有没有人对Java的一些开源OAI-PMH 2.0库有经验?

可能是一个选项,但我被0.1版本计数器推迟了一点.

我还在OAI-PMH网站上找到了这个页面,其中列出了许多工具和库,但我不知道它们是如何相互叠加的.

java oai

6
推荐指数
1
解决办法
1880
查看次数

用于从文本表示法生成流程图的工具

我正在寻找一个基于控制台的工具,可以处理包含流程图的文本符号的简单文本文件,并生成PNG(或其他格式)文件.可能还有一个LaTeX包,但是,如果可能的话,我更喜欢一个可以生成独立PNG的工具,然后我可以将其作为图形导入LaTeX文档中.

latex flowchart

6
推荐指数
1
解决办法
9463
查看次数

如何在单元测试中模拟缺乏网络连接

一般问题是如何模拟(作为一JUnit组测试用例的一部分)缺乏网络连接,因为这在某些测试用例中是一个重要的考虑因素。有没有办法通过 Java API(或通过 JVM 选项)这样做,以便某些测试用例可以在网络断开连接的情况下运行?(模拟的还是真实的?)。

更具体的情况(如果没有普遍适用的解决方案)是我正在做一堆 XML 文件处理(包括 XSD 验证),我需要确保没有通过网络获取任何内容,特别是xsi:schemaLocation属性值(提示) 未使用,并且所有 XSD 实际上都是从类路径中获取的。我正在使用带有自定义LSResourceResolver验证器,该自定义LSResourceResolver加载类路径中可能需要的任何 XSD。

我想我可以实现 的resolveResource方法LSResourceResolver以便永远不会返回null(因此,永远不会回到打开到资源的常规 URI 连接的默认行为)但我不确定这是否足够并且在无论如何,如果我可以JUnit在模拟孤岛模式下运行我的测试(无需手动关闭我机器上的接口),我会更有信心。

更新

接受的答案,即该-DsocksProxyHost方法提供了我需要的解决方案,因为JUnit 任务可以接受 VM 参数(如果fork设置为true),因此我可以在我的 Ant 文件中包含以下内容:

<junit printsummary="true" showoutput="true" fork="true" maxmemory="256m">
    <jvmarg value="-DsocksProxyHost=127.0.0.1"/>
    ...
Run Code Online (Sandbox Code Playgroud)

...包裹在里面,contrib:if所以我可以从命令行控制是否在网络连接的条件下运行 JUnit 测试。

java xml junit xsd-validation

6
推荐指数
1
解决办法
2619
查看次数

使用`es2016`预设的Babel实现尾调用优化吗?

我使用以下示例来测试使用Babel和es2016预设的尾调用递归:

'use strict';

try {
    function r(n) {
        if (n%5000===0)
            console.log(`reached a depth of ${n}`);
        r(n+1);
    }
    r(0);
} catch (e) {
    if (!(e instanceof RangeError))
        throw e;
    else
        console.log('stack blown');
}
Run Code Online (Sandbox Code Playgroud)

我的package.json档案是:

{
    "name": "tail-call-optimization",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "build": "babel es6 --out-dir es5 --source-maps",
        "watch": "babel es6 --out-dir es5 --source-maps --watch",
        "start": "node es5/app.js"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
        "babel-cli": "^6.6.5",
        "babel-core": "^6.7.4",
        "babel-loader": "^6.2.4",
        "babel-polyfill": "^6.7.4",
        "babel-preset-es2016": …
Run Code Online (Sandbox Code Playgroud)

javascript tail-recursion babeljs

6
推荐指数
2
解决办法
829
查看次数