我在日志中发现了这个异常:
log4j:ERROR转换日期时发生错误.java.lang.System.arraycopy(Native Method)的java.lang.NullPointerException,位于org的java.lang.StringBuffer.getChars(StringBuffer.java:201)的java.lang.AbstractStringBuilder.getChars(AbstractStringBuilder.java:328). apache.log4j.helpers.ISO8601DateFormat.format(ISO8601DateFormat.java:130)at java.text.DateFormat.format(DateFormat.java:316)at org.apache.log4j.helpers.PatternParser $ DatePatternConverter.convert(PatternParser.java: 443)org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:65)atg.apache.log4j.PatternLayout.format(PatternLayout.java:506)org.apache.log4j.WriterAppender.subAppend(WriterAppender) .java:310)org.apache.log4j.WriterAppender.append(WriterAppender.java:162)org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)atg.apache.log4j.helpers.AppenderAttachableImpl. appendLoopOnAppenders(AppenderAttachableImpl.java:66)org.apache.log4j.Category.callAppenders(Category.java:206)atg.apache.log4j.Category.forcedLog(Cat)egory.java:391)org.apache.log.Category.info(Category.java:666)org.obliquid.db.ConnectionManager.releaseConnection(ConnectionManager.java:313)org.obliquid.db.ConnectionManager.finalize上的org.apache.log4j.Category.info(Category.java:666) (ConnectionManager.java:331)位于java.lang.ref.Finalizer.run上的java.lang.ref.Finalizer.run中的java.lang.ref.Finalizer.invokeFinalizeMethod(本地方法)(Finalizer.java:83)$ 100( Finalizer.java:14)at java.lang.ref.Finalizer $ FinalizerThread.run(Finalizer.java:160)
我认为这可能是由我的log4j.properties文件引起的,特别是由ConversionPattern引起的.有关如何修复的任何想法?
#Updated at Wed Sep 14 21:57:51 CEST 2011
#Wed Sep 14 21:57:51 CEST 2011
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.rootLogger=INFO, stdout
log4j.appender.R.File=yamweb.log
log4j.appender.R.MaxFileSize=1000KB
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.logger.yamweb=DEBUG
log4j.logger.org.springframework=INFO
log4j.logger.org.springframework.beans=DEBUG
log4j.logger.com.amazonaws=WARN
Run Code Online (Sandbox Code Playgroud)
更新:实际上,看看PatternLayout JavaDoc,我甚至没有提到日期格式.
d用于输出日志记录事件的日期.日期转换说明符后面可能跟在大括号之间的日期格式说明符.例如,%d {HH:mm:ss,SSS}或%d {dd MMM yyyy HH:mm:ss,SSS}.如果没有给出日期格式说明符,则假定为ISO8601格式.
我添加了一个明确的转换模式:%d{yyyy-MM-dd HH:mm:ss} [%t] %p %c - %m%n- 查看日志,如果有帮助,我会告诉您.
更新2:问题不再发生了.
尽管 HTTP 规范规定标头不区分大小写;Paypal 及其新的自适应支付 API 要求其标头区分大小写。
使用 ActiveMerchant 的 paypal 自适应支付扩展 ( http://github.com/lamp/paypal_adaptive_gateway ) 似乎虽然标头全部设置为大写,但它们以混合大小写发送。
下面是发送 HTTP 请求的代码:
headers = {
"X-PAYPAL-REQUEST-DATA-FORMAT" => "XML",
"X-PAYPAL-RESPONSE-DATA-FORMAT" => "JSON",
"X-PAYPAL-SECURITY-USERID" => @config[:login],
"X-PAYPAL-SECURITY-PASSWORD" => @config[:password],
"X-PAYPAL-SECURITY-SIGNATURE" => @config[:signature],
"X-PAYPAL-APPLICATION-ID" => @config[:appid]
}
build_url action
request = Net::HTTP::Post.new(@url.path)
request.body = @xml
headers.each_pair { |k,v| request[k] = v }
request.content_type = 'text/xml'
proxy = Net::HTTP::Proxy("127.0.0.1", "60723")
server = proxy.new(@url.host, 443)
server.use_ssl = true
server.start { |http| http.request(request) }.body
Run Code Online (Sandbox Code Playgroud)
(我添加了代理线,这样我就可以看到 Charles 发生了什么 - http://www.charlesproxy.com/) …
我的应用程序正在执行大量连续的 XHR 调用。这意味着建立大量的 HTTP 连接。
我正在尝试分析所有这些连接的性能。我发现第一个 HTTP 连接花费了大约 10% 的持续时间用于阻塞(以下定义引用自Firebug Wiki):
阻塞-在浏览器队列中等待网络连接所花费的时间(以前称为排队)。对于 SSL 连接,这包括 SSL 握手和 OCSP 验证步骤。
在连续调用中,阻塞所花费的时间会增加,大约 10 次调用后,阻塞稳定在平均约 120MS(!!!)。
我尝试在 Chrome 中使用 DevTools 以及在 IE 中使用 Fiddler 来测量 HTTP 连接,尽管它们对于 HTTP 连接上的不同阶段没有使用完全相同的阶段/名称,但都没有显示出数量过多的迹象花费在 Firefox 拦截上的时间。
我可以排除这是缺乏可用(持久)HTTP 连接的可能性。由于 XHR 调用是同步完成的。
有人熟悉 Firefox 的这种行为吗?如果有必要,我可以显示 Firebug Net 面板输出。
我正在尝试通过PowerShell连接到网络共享.网络共享位于不同的域中,因此我需要提供凭据.由于New-PSDrive不支持凭证,我打算使用网络使用,但我担心将我的用户名/密码以明文形式放入脚本中.我强制ConvertTo-SecureString从我的密码中生成一个安全的字符串,然后使用ConvertFrom-SecureString并将结果存储在一个文件中.然后,我把它从这个文件中拉出来并尝试使用net:
$password = Get-Content <locationOfStoredPasswordFile> | ConvertTo-SecureString
net use q: "\\server\share" $password /user:domain\username
Run Code Online (Sandbox Code Playgroud)
但网络使用无法识别安全字符串.
任何人对如何存储凭据有任何想法,以便网络使用可以使用它们?谢谢!
我正在读取几年前预定义的二进制数据(通过网络流或文件).我目前通过将其读入字节数组然后将数组转换为我需要的字段来读取此数据System.BitConverter.不用说,这是耗费时间和容易出错的.
我希望我可以使用ISerializable,但我不知道如何为预定义的结构实现这一点.
我希望能指出如何改进我目前的战略......
我正在尝试编写一个备份仪表板,显示多个服务器备份的状态.我们的想法是显示一个带有JSP的表,其中列中的最后几天日期和行中的服务器名称.在这个穷人的桌子上,我写了是/否值.
+------------+------------+------------+------------+
+ Host Name | 2011-06-10 | 2011-06-09 | 2011-06-08 |
+------------+------------+------------+------------+
| web01 | Y | Y | N |
+------------+------------+------------+------------+
| web02 | Y | Y | Y |
+------------+------------+------------+------------+
Run Code Online (Sandbox Code Playgroud)
每个服务器都有自己的备份并将状态保存到Amazon SimpleDb中,我编写了一个Java方法,使用以下签名检索过去几天的这些信息:
/**
* List MySQL backups of the last howManyDays days. It starts from today
* included at index 0 and goes back in the past until we have a list of
* howManyDays days, even if some day doesn't have any data. Return …Run Code Online (Sandbox Code Playgroud) 我以为我已经很好地掌握了Git,但刚才我很惊讶.我认为分支会将变化与其他分支隔离开来,所以我在一个新的分支中开始了一个大的实验性重构.这种重构,意味着移动了许多文件.当我切换到掌握时,我仍然可以看到变化!
我去了我的沙箱存储库来复制问题:
$ git branch crazy-refactoring
$ git checkout crazy-refactoring
$ rm README
$ git checkout master
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: README
#
no changes added to commit (use "git add" and/or "git commit -a")
$ ls README
ls: cannot access README: No such file …Run Code Online (Sandbox Code Playgroud) 如何在D中下载文件?我检查了标准库和样本.我宁愿使用最新的dmd2而不是探戈的phobos.我需要做的就是下载一个文件(希望使用std.socket和std.socketstream).也可以使用etc.c.curl.
我在现有项目中使用Symfony2和assetic,我无法弄清楚如何在CSS中引用图像.我把我的图片放在:src/Organisation/MyBundle/Resources/public/images/
运行资产安装后: php app/console assets:install public
我可以在浏览器中正确加载它们: http://sitename/bundles/organisationmy/images/logo.png
但是,当我尝试在CSS中指向它们时,使用: url('/bundles/organisationmy/images/logo.png')
用firebug检查,url变为:url('/web/bundles/organisationmy/images/logo.png')并且导致404.
在我的主模板中,我有:
{% stylesheets filter='yui_css' output='css/output.css'
'@MyBundle/Resources/public/css/bootstrap.min.css'
'@MyBundle/Resources/public/css/bootstrap-responsive.min.css'
'@MyBundle/Resources/public/css/my.css'
%}
Run Code Online (Sandbox Code Playgroud)
在config.yml我有:
assetic:
debug: %kernel.debug%
use_controller: false
java: /usr/bin/java
filters:
cssrewrite: ~
yui_css:
jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar
yui_js:
jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar
Run Code Online (Sandbox Code Playgroud)
在routing.yml我有:
_assetic:
resource: .
type: assetic
Run Code Online (Sandbox Code Playgroud)
我已经看到了这个问题Symfony2 - Assetic - 在CSS中加载图像,但我不知道我是否以及如何使用filter='cssrewrite',filter='yui_css'同时或如何解决问题.
基本上,如果我可以阻止Symfony2前缀我的CSS图像路径/web/问题将得到解决.或者,是否有人知道在Symfony2中解决此问题的正确方法是什么?
更新:我注意到即使我把url('something.png')放在我加载页面时CSS也不再更新,所以我可能用命令行弄乱了一些东西,我也给了命令喜欢php app/console assetic:dump- 如何回到修改CSS并重新加载页面的正常开发风格?
更新2:我发现php app/console assetic:dump --watch在资产发生变化时会自动更新资产.
我正在尝试以编程方式使用EBS启动Ubuntu 12.04 LTS服务器64位.我写了以下代码:
Placement placement = new Placement("eu-west-1b");
RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
.withPlacement(placement).withInstanceType("t1.micro")
.withImageId("ami-c1aaabb5").withMinCount(1).withMaxCount(1)
.withSecurityGroupIds("testGroup").withKeyName("testKey")
.withUserData(Base64.encodeBase64String(startupScript.getBytes()));
RunInstancesResult runInstances = amazonEC2.runInstances(runInstancesRequest);
List<Instance> instances = runInstances.getReservation().getInstances();
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
AWS错误代码:InvalidAMIID.NotFound,AWS错误消息:AMI ID"ami-c1aaabb5"不存在
我在Amazon AWS控制台和此URL中找到了实例ID:http://cloud-images.ubuntu.com/releases/precise/release-20121001/
我究竟做错了什么?