我正在使用Java的RESTful Web服务.如果出现问题,我需要一种向客户端发送错误消息的好方法.
根据Javadoc,由于消息参数含义模糊,HttpServletResponse.setStatus(int status, String message)因此不推荐使用.
是否有一种首选方式来设置响应的状态消息或" 原因短语 "?该sendError(int, String)方法没有这样做.
编辑:为了澄清,我想修改HTTP状态行,即"HTTP/1.1 404 Not Found"不是正文内容.具体来说,我想发送回复"HTTP/1.1 400 Missing customerNumber parameter".
我正在开发一个分析Haskell代码的项目.我决定使用GHC来解析源代码并推断类型而不是编写我自己的代码来做到这一点.现在,我正在通过Haddock文档,但它进展缓慢.有谁知道一个很好的教程?
编辑:澄清一下,我不是在寻找像hlint这样的东西.我正在编写自己的工具来分析Haskell代码的运行时特性,所以就像我正在编写一个不同的hlint.我正在寻找的基本上是维基页面GHC作为一个库的扩展.
我希望用户能够使用OpenID登录我的网站,但我不知道要使用哪个库.我知道哪些是那里,但我想知道哪一个是最好的.我正在运行JOnAS,但没有Web框架(没有Spring,Struts,GWT等).(请不要因为没有使用Web框架而惩罚我.我有我的理由.)为了它的价值,我的网站被分成多个WAR,我希望在那种情况下运行良好的东西,但那不是一个很重要.
有没有人有不同的图书馆经验?您可以分享的任何经验或智慧?
我在Objective C中看到MAX宏的奇怪行为.具体来说,我在我的main函数中有这个代码:
NSArray* array = [NSArray array];
NSLog(@"[array count] - 1 = %d", [array count] - 1);
NSLog(@"MAX(0, [array count] - 1) = %d", MAX(0, [array count] - 1));
NSLog(@"MAX(0, -1) = %d", MAX(0, -1));
Run Code Online (Sandbox Code Playgroud)
输出是:
[array count] - 1 = -1
MAX(0, [array count] - 1) = -1
MAX(0, -1) = 0
Run Code Online (Sandbox Code Playgroud)
我用-save-temps保存了预处理器输出,它看起来像这样:
NSArray* array = [NSArray array];
NSLog(@"[array count] - 1 = %d", [array count] - 1);
NSLog(@"MAX(0, [array count] - 1) = %d", ((0) > ([array count] …Run Code Online (Sandbox Code Playgroud) 我有一个带有ICellModifier的TableViewer似乎工作正常.我在其中一个单元格编辑器上设置了一个ICellEditorValidator,但是我无法按照我想要的方式运行它.这是我的缩写代码:
cellEditors[1] = new TextCellEditor(table);
cellEditors[1].setValidator(new ICellEditorValidator() {
public String isValid(Object value) {
try {
Integer.parseInt((String) value);
return null;
} catch(NumberFormatException e) {
return "Not a valid integer";
}
}
});
Run Code Online (Sandbox Code Playgroud)
它大部分工作正常.但是,有两个问题:
modify如果验证器返回错误,则单元格修饰符的方法接收null作为新值.我可以编写代码来处理这个问题,但这似乎不对.Null可以是有效值,例如,如果用户选择背景颜色并且他们选择透明.(这是一个普遍问题,不是特定于此示例.)applyEditorValue如果最后一个值无效,我还可以添加一个ICellEditorListener并显示该方法的对话框
.这是"正确"的方式吗?顺便说一下,由于我无法控制的原因,我只限于Eclipse 3.0框架.
我正在尝试使用GHC编译以下代码:
module Test where
import Maybe
import Prelude hiding (null)
import System.IO
null = ()
main :: IO ()
main = putStrLn "Hello, world!"
Run Code Online (Sandbox Code Playgroud)
如果我跑ghc Test.hs,我得到:
Could not find module `Maybe'
It is a member of the hidden package `haskell98-2.0.0.1'.
Run Code Online (Sandbox Code Playgroud)
所以我尝试ghc -package haskell98 Test.hs:
Ambiguous module name `Prelude':
it was found in multiple packages: base haskell98-2.0.0.1
Run Code Online (Sandbox Code Playgroud)
这似乎不对,但我尝试ghc -package haskell98 -hide-package base Test.hs:
Could not find module `System.IO'
It is a member of the hidden …Run Code Online (Sandbox Code Playgroud) 我有一个Swing应用程序,需要根据是否按下控制键或alt键来显示不同的控件组.我在主组件中添加了一个KeyListener,但只有在选择了该组件时才会通知它,而不是在选择了子组件时.有没有办法听取组件和所有后代的事件?
编辑:
我尝试使用主要组件的InputMap,但按下修饰键时不会触发任何事件.具体来说,我有以下代码:
InputMap inputMap = panel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
inputMap.put(KeyStroke.getKeyStroke("pressed CONTROL"), "test1");
inputMap.put(KeyStroke.getKeyStroke("released CONTROL"), "test2");
ActionMap actionMap = panel.getActionMap();
actionMap.put("test1", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("pressed");
}
});
actionMap.put("test2", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("released");
}
});
Run Code Online (Sandbox Code Playgroud)
按下并释放控制键时,将打印"已释放"但未"按下".没有其他任何东西在任何InputMap中注册任何东西,所以它不像其他东西被注册为相同的键击.
我正在寻找一种可靠的,与实现无关的克隆整个文档的方法.Javadocs特别指出,在Document上调用cloneNode是特定于实现的.我已经尝试通过无操作的Transformer传递Document,但生成的Node没有所有者Document.
我可以创建一个新文档并从旧文档导入节点,但我担心可能会丢失一些文档元数据.将Document写入字符串并将其解析回来也是如此.
有任何想法吗?
顺便说一句,由于我无法控制的原因,我陷入了Java 1.4.2.
原因很漫长而且很无聊,但是我需要运行一个Ant脚本来从Java 1.4应用程序编译Java 1.5代码.我不断收到此错误:
BUILD FAILED
build.xml:16: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\j2sdk1.4.2_16\jre"
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我有:
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.setProperty("java.home", "C:\Program Files\Java\jdk1.6.0_04");
p.fireBuildStarted();
p.init();
// so on and so forth
Run Code Online (Sandbox Code Playgroud)
但它忽略了它.我也尝试过p.setUserProperty(String,String),但这也不起作用.有没有办法在不启动单独流程的情况下完成?
我在UIToolbar中嵌套了一个UISearchBar作为UIBarButtonItem.基本功能有效,但取消按钮和范围栏拒绝显示.我已经尝试在界面构建器中启用它们,我也尝试过手动调用[searchBar setShowsCancelButton:YES],但这两种方法都不起作用.有任何想法吗?
这是在iPad上.我在iOS 3中尝试过,它在4.2中也不起作用.
我一直在尝试使用Rebar设置一个简单的Erlang应用程序但无法使其工作.我按照http://skeptomai.com/?p=56上的说明操作了这封信,当我跑步时./rebar -v generate,我收到此错误:
==> Entering directory `/home/adam/erlang-test3/testing-rebar/apps/myapp'
WARN: 'generate' command does not apply to directory /home/adam/erlang-test3/testing-rebar/apps/myapp
==> Leaving directory `/home/adam/erlang-test3/testing-rebar/apps/myapp'
==> Entering directory `/home/adam/erlang-test3/testing-rebar/rel'
==> rel (generate)
{"init terminating in do_boot","Release mynode uses non existing application mynode"}
Crash dump was written to: erl_crash.dump
init terminating in do_boot (Release mynode uses non existing application mynode)
Run Code Online (Sandbox Code Playgroud)
关注https://bitbucket.org/basho/rebar/wiki/ReleaseHandling时出现类似错误.当关注http://www.metabrew.com/article/erlang-rebar-tutorial-generating-releases-upgrades时,我得到:
{"init terminating in do_boot",{undef,[{dummy_proj,start,[]},{init,start_it,1},{init,start_em,1}]}}
Run Code Online (Sandbox Code Playgroud)
我如何让螺纹钢起作用?我的Erlang版本是Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
鉴于此Bash代码:
TEMP="1_2"
echo ${TEMP/_.*/}
Run Code Online (Sandbox Code Playgroud)
为什么打印出来1_2而不是1?
我也试过这些,但它们不起作用:
echo ${TEMP/_\.*/}
echo ${TEMP/_\\.*/}
Run Code Online (Sandbox Code Playgroud)
这确实有效:
echo ${TEMP/_[0-9]*/}
Run Code Online (Sandbox Code Playgroud)
但我想知道:
我在XCode中有一个Objective C项目.构建时,XCode会对我的前缀PCH文件进行两次预编译.第一次,它使用参数-x objective-c-header,它工作正常.第二次,它使用-x c-header,并且失败(由于包含Objective C代码的文件).
我有另一个设置相同的项目,但它构建良好.(PCH仅预编译一次,目标C.)我并排比较了两个项目的构建设置,没有任何相关的不同.我并排比较了目标的构建设置,并且没有相关的差异.
我试着清理所有目标并重建,但没有运气.我试过重启XCode,但没有运气.我为我的项目文件夹c-header插入了grepped ,但它只出现在构建日志中.
可能是什么导致了这个?
java ×6
ghc ×2
haskell ×2
java-ee ×2
objective-c ×2
ant ×1
bash ×1
dom ×1
eclipse ×1
erlang ×1
events ×1
ghc-api ×1
http ×1
ios ×1
ipad ×1
javac ×1
jface ×1
keylistener ×1
macros ×1
openid ×1
package ×1
pch ×1
rebar ×1
regex ×1
servlets ×1
status ×1
swing ×1
uisearchbar ×1
uitoolbar ×1
validation ×1
xcode ×1
xml ×1