在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)
在许多情况下,其中一些允许绑定(例如上面示例中的f1和f2)仅用作紧跟在它们之后的表达式或函数的构建块,之后不再引用.在其他情况下,确实在"链"的末尾使用了一些值(例如,上述示例中的a1,a2和a3).是否存在任何语法习惯用语来明确范围内的这些差异?
出于某些原因,我想将我的应用程序部署为两个单独的工件:Users-ejb.jar和Users-war.war,未打包在同一个耳中(但仍然部署在同一个 JBoss AS 7.1实例中).在Users-war.war中,我有一个支持bean(注释为JSF托管bean),我希望在其中注入打包在Users-ejb.jar中的EJB3 .当Users-ejb.jar和Users-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) 更新:我最终设法在最小的设置中重现这个,我作为一个单独的问题发布.
从同一个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) 下面的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有类似的功能吗?
假设我有一个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中,但我不知道一个基于控制台的工具来验证它.
我知道在我的代码中的某个点,列表只有一个元素,所以我用它来获取它
(first alist)
Run Code Online (Sandbox Code Playgroud)
但是如果列表有多个元素来提醒我错误的情况,我也希望代码能够破解.在Clojure中实现这一目标的惯用方法是什么?
有没有人对Java的一些开源OAI-PMH 2.0库有经验?
这可能是一个选项,但我被0.1版本计数器推迟了一点.
我还在OAI-PMH网站上找到了这个页面,其中列出了许多工具和库,但我不知道它们是如何相互叠加的.
我正在寻找一个基于控制台的工具,可以处理包含流程图的文本符号的简单文本文件,并生成PNG(或其他格式)文件.可能还有一个LaTeX包,但是,如果可能的话,我更喜欢一个可以生成独立PNG的工具,然后我可以将其作为图形导入LaTeX文档中.
一般问题是如何模拟(作为一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 测试。
我使用以下示例来测试使用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)