ehcache是一个非常可配置的野兽,示例相当复杂,通常涉及多层接口.
有没有人遇到过最简单的例子,它只是在内存中缓存类似单个数字的东西(不是分布式的,没有XML,只有尽可能少的java行).然后将该数字缓存60秒,然后下一个读取请求使其获得新值(例如,通过调用Random.nextInt()或类似)
使用单例和一些同步来编写我们自己的缓存是否更快/更容易?
请不要春天.
我看过包含这样的事情的例子:
mountSharedResource("/images/logo.gif", new ResourceReference(ImageScope.class,
"logo.gif").getSharedResourceKey());
mountSharedResource("/resource",
Application.class.getName() + "/" + resourceKey);
Run Code Online (Sandbox Code Playgroud)
但是Javadoc为构造函数说了这个:
ResourceReference(java.lang.Class<?> scope, java.lang.String name);
Run Code Online (Sandbox Code Playgroud)
因此,当您创建一个时ResourceReference
,就会给它一个类.为什么?通常你会想要全局范围或ResourceReference
刚刚创建的对象的范围,不是吗?
还有,是什么name
?是sharedResourceKey
吗?如果没有,它resourceKey
来自哪里?它是如何产生的,为什么不是它的名字?或者name
在类路径上查找并神奇地加载(假设在类路径中只有一个具有该名称的文件;如果有多个会发生什么?)?如果它确实加载了具有该名称的文件,为什么不在Javadoc中这样说呢?
你如何实际为此分配一个物理资源ResourceReference
?有一个getResource()
,但他们似乎错过了setResource()
.如果你的目录中有一个图像文件,你webapp
如何"附加"对文件的引用,它的路径,甚至是文件内容的字节流?如果有一种方法可以在webapp中读取资源,这可能很有用,但你不能; 它只在类路径中.
我希望能够"挂载"内容,比如说,webapp/games/someGame.swf
以便Wicket页面可以访问webapp中的SWF,或者只是对它们进行某种处理.
作为一名Web服务初学者,我已经尝试了两周的时间来获得一个使用maven,eclipse和tomcat的hello world webservice.
我放弃了尝试让任何代码/ wsdl生成器工作,我按照本教程http://myarch.com/create-jax-ws-service-in-5-minutes手动编写一个例子,这是辉煌.
这导致4个类文件和一个WSDL文件.
所以我的愚蠢问题是如何在eclipse和/或tomcat上"运行"服务?
我尝试将它们部署为webapp,但没有任何乐趣 - web.xml中没有任何内容告诉servlet引擎Web服务是否存在,所以我想它永远不会工作.
我是否必须在tomcat中有一个特殊的Web服务容器(例如axis2,metro或CXF),并部署到那个?或者它可以运行一些jax-ws罐+神秘配置?
我不想安装到tomcat metro(使用ant,并且设计为glassfish)或axis2(使用ant,大多数人似乎不推荐).
我查看了CXF,但无法在他们的网站上找到如何在没有弹簧的情况下在tomcat(或eclipse)上安装/配置它.我把CFX jar放在maven依赖项中,并安装了eclipse插件,但是这个deoesnt让你更接近实际运行一个没有神秘配置胶水的web服务.CXF似乎与弹簧相关,这对我们来说是一个很大的减号,因为我们不使用弹簧(或需要它的任何功能).
我注意到helios wtp有一些名为JSR-109的Web服务项目.这只是java RPC,还是它支持完整的SOAP websiervice系统,是否值得尝试解决?
任何建议都非常欢迎.我必须搜索1000页以搜索Web服务圣杯 - 即如何创建并部署到tomcat端到端.它应该是这么难吗?
我试图在服务器端将加密数据从闪存(客户端)发送到javascript(在asp中作为jscript运行).
有几个javascript Aes库,但它们几乎没有文档.我正在尝试使用crypto-js,但无法使代码工作.下面的例子生成一个空输出,它应该生成"6bc1bee22e409f96e93d7e117393172a".
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/mode-ecb.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/pad-nopadding.js"></script>
<script>
var key = CryptoJS.enc.Hex.parse('2b7e151628aed2a6abf7158809cf4f3c');
var data = CryptoJS.enc.Hex.parse('3ad77bb40d7a3660a89ecaf32466ef97');
var decrypted3 = CryptoJS.AES.decrypt(data, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.NoPadding });
document.write("<br /> dec3: " + decrypted3.toString());
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我从http://www.inconteam.com/software-development/41-encryption/55-aes-test-vectors中获取了记录的工作密钥和加密数据.
我正在使用ECB,因为它是唯一不需要IV或盐的版本,因为服务器不知道客户端上使用的IV或盐,因此无法解密数据.
有没有人知道为什么以上无法解密数据,或知道任何文档在哪里?
更新:经过几个小时的试验和错误后,我想出了一个产生输出的组合:7c121d95a84573b6120ada2ffff1ce3118561eba40555c0b但是,这仍然是不正确的.为实现这一目标所做的改变是:
var decrypted3 = CryptoJS.AES.decrypt('3ad77bb40d7a3660a89ecaf32466ef97', key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.NoPadding });
Run Code Online (Sandbox Code Playgroud)
即我将数据作为一个十六进制的字符串传递,这是正确的,但至少产生输出.
下一个问题是填充问题.在客户端我使用AS3 hurlant库,它只提供两种填充策略:NONE和PKCS#5.在crypto-js中,可用的策略是:
Pkcs7 (the default)
Iso97971
AnsiX923
Iso10126
ZeroPadding
NoPadding
Run Code Online (Sandbox Code Playgroud)
这是否意味着两个库之间没有机会解密数据?在我不得不编写自己的填充黑客(在AS3和java之间),添加或删除尾随数据之前,这需要几天的试验和错误的二进制数据 - 必须有一种更简单的方法从客户端发送单个加密字符串到服务器.
SSL不是一个选项,因为客户端用户只需使用Charles代理或类似功能即可查看和篡改未加密的数据.
在JS中,你可以抛出一个“new Error(message)”,但是如果你想检测异常的类型并对消息做一些不同的事情,那就没那么容易了。
这篇文章: http://www.nczonline.net/blog/2009/03/10/the-art-of- throwing-javascript-errors-part-2/
是说你可以这样做:
function MyError(message){
this.message=messsage;
this.name="MyError";
this.poo="poo";
}
MyError.prototype = new Error();
try{
alert("hello hal");
throw new MyError("wibble");
} catch (er) {
alert (er.poo); // undefined.
alert (er instanceof MyError); // false
alert (er.name); // ReferenceError.
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用(得到“未定义”和错误)
这可能吗?
test.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" x="0" y="0" width="703" height="609" xmlns:ns1="*" >
<mx:Script>
<![CDATA[
import flash.events.*;
// stuff
private function onUncaughtError(e:UncaughtErrorEvent):void {
//Do Stuff
}
Run Code Online (Sandbox Code Playgroud)
这给出:apitester.mxml 1046:未找到类型或不是编译时常量:UncaughtErrorEvent./ apitester/src第35行Flex问题
根据Adobe的说法,它可以在flex和Air中使用.
Flex 4/Eclipse构建路径显示:
Flex 4.0
有任何想法吗?
java ×2
javascript ×2
cxf ×1
ecb ×1
ehcache ×1
exception ×1
flex4 ×1
flexbuilder ×1
jax-ws ×1
throw ×1
web-services ×1
wicket ×1