我编写了一个演示HelloWorld Rails应用程序并使用WEBrick测试它(它甚至不使用数据库,它只是一个打印"hello world"的控制器).然后我尝试将其部署到使用Passenger的本地Apache.事实上,这个测试只是让Passenger工作(这是我第一次在Apache上部署).现在我甚至不确定Passenger是否正常工作,但我在Apache方面没有任何错误.
当我触发http://rails.test/浏览器时显示Rails 500错误页面 - 所以我假设Passenger正常工作.我想调查日志,但是生产.log是空的!我不认为这是一个权限问题,因为如果我删除该文件,它会在我重新加载页面时重新创建.我试图更改日志级别conf/environments/production.rb,尝试使用Rails控制台生成手动写入日志文件
Rails.logger.error('asdf')
Run Code Online (Sandbox Code Playgroud)
它返回true但没有任何内容写入production.log.路径(根据Rails.logger.inspect获得)是正确的,我注意到如果我手动删除它,该文件将被重新创建.我怎么知道发生了什么?
(我已经检查过Apache日志,另外我为Passenger设置了最高的调试级别,但它似乎是一个Rails问题,所以服务器没有记录)
我有一个站点,其URL以"http://"开头,但这给了我一个例外消息 - 不支持的协议:https.该站点是否可能使用HTTPS协议,其URL仍以"http://"开头,而不是"https://".
public ActionForward executeAction(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionForward forward = mapping.findForward(Constants.SUCCESS);
String link = "http://abc.fgh.jkl.mno";
URL thisURL;
HttpURLConnection conn = null;
try {
thisURL = new URL(link);
conn = (HttpURLConnection) thisURL.openConnection();
System.out.println(conn.getResponseCode());
System.out.println(conn.getResponseMessage());
} catch (Exception ex) {
ex.printStackTrace();
}
return forward;
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪
java.net.ProtocolException: Unsupported protocol: https'
at weblogic.net.http.HttpClient.openServer(HttpClient.java:342)
at weblogic.net.http.HttpClient.New(HttpClient.java:238)
at weblogic.net.http.HttpURLConnection.connect(HttpURLConnection.java:172)
at weblogic.net.http.HttpURLConnection.followRedirect(HttpURLConnection.java:643)
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:422)
at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:36)
at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:947)
at com.cingular.cscape.da.struts.action.thisAction.executeAction(thisAction.java:56)
at com.cingular.cscape.da.struts.action.BaseAction.execute(BaseAction.java:300)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at …Run Code Online (Sandbox Code Playgroud) 这是我的示例代码,我收到警告.
String lsSQL = foMetaQuery.getSQL();
String lsNewSQL = replace(lsSQL,"'' {","''{");
lsNewSQL = replace(lsNewSQL," } ''","}''");
lsNewSQL = replace(lsNewSQL," }","}");
lsNewSQL = MessageFormat.format(lsNewSQL,foSubstitutionArray);
loVSQueryDef.setSQL(lsNewSQL);
Run Code Online (Sandbox Code Playgroud)
编译说
转换为java.lang.Object以进行varargs调用强制转换为java.lang.Object []以进行非varargs调用并禁止此警告
Run Code Online (Sandbox Code Playgroud)lsNewSQL = MessageFormat.format(lsNewSQL,foSubstitutionArray);
我想测试一些评估,而不需要在任何表上工作.例如,你可以写
SELECT 1+1
>2
Run Code Online (Sandbox Code Playgroud)
我希望实现这样的目标:
SELECT 2 > 1
>FALSE
Run Code Online (Sandbox Code Playgroud)
我知道大多数引擎都没有布尔数据类型的概念,但我不知道它们的内部工作方式(即使我猜测所有的一切都是<> 0 true,就像在C中一样).无论如何,响应的格式确实无关紧要,无论是true/false或者0/1
我有这个基本的News界面
interface News {
String getHeader();
String getText();
}
Run Code Online (Sandbox Code Playgroud)
和具体类一样,SportsNews并FinancialNews提供特定的方法,如getStockPrice(),getSport()等等.新闻旨在发送给
interface Subscriber<N extends News> {
void onNews(N news);
}
Run Code Online (Sandbox Code Playgroud)
问题是如何注册和维护订阅.我尝试的第一种方法是使用中心Aggregator,在Class<T>对象之间保持地图Set<Subscriber<T>>,但很快这种方法显示出不可行.这是所需的API
public class Aggregator {
public <N extends News> void subscribe(Subscriber<N> subscriber) {
// TODO somehow (super type token) extract N and
// add the item to the set retrieved by getSubscribersFor()
}
public <N extends News> void dispatch(N news) {
for (Subscriber<N> subscriber: getSubscribersFor(news.getClass())) …Run Code Online (Sandbox Code Playgroud) 我正在设计一个简单的调谐器,所以我的目标是显示一个音符名称(A,B,F#)和理论声音与实际输入之间的距离.
我对音频和信号处理完全陌生,所以我做了一些研究,我找到了一个名为快速傅立叶变换的东西,它将分析字节并给出频率.此外,我发现了一些Java库,如常见的数学和JTransforms,因此我不会自己编写硬代码.
我相信这一切,因为每个范围频率可以直接映射到平等气质的音符,但后来我发现这个新的(对我来说)单词称为音高:它被认为与频率紧密相关,但并不完全相同事情并且要难得多,属于那个心理声学领域.
所以我的问题是,有人可以清楚地概述音高和频率之间的差异,也许可以告诉我哪个调谐器处理?
我的程序的用户是按层次组织的。每个用户都是树中的一个节点,唯一的其他类型的节点是部门节点。每个节点只有一个父节点(可能是根节点)。
我生成了一个供graphviz套件使用的DOT文件,但是生成的图片无法使用,因为它太宽了。我不知道这个程序是否可以调整以满足我的需求,因为我有一个包含许多兄弟节点的扁平层次结构,所以也许我需要一个专门为此设计的程序(或编写我自己的程序)。我尝试了 unflatten 工具,但没有成功。
这是测试点文件- 请注意,我的程序经常使用 10 倍的数据...
最近有一个关于SO的问题引起了我的注意.Android没有用于收听传入短信的公共API.曾经有一个动作android.provider.Telephony.SMS_RECEIVED,但它已从官方API中删除,即使它仍然有效,它显然不是面向未来的.我现在不需要这个功能,但是我可能在将来,我发现它很奇怪它不可用,因为:
也许我错过了一些东西或者可能有技术原因 - 我承认不知道SMS是如何工作的
在我的应用程序中,我需要很多CRUD东西:从本地SQLite数据库读取记录,插入对象和更新东西.大多数查询都非常简单,即使在UI线程上运行它们也不会阻塞,但是在这个应用程序中我想采用Windows Phone模式:一个out动画立即开始,动画在结果传递时开始动画.
我计划使用一个AsyncTask用于工作,但我注意到Honeycomb(和compat包)引入了这个新的Loader框架.主要优势似乎是Loader生存配置加载的数据发生了变化.该LoaderEx通过SQLite和框架之间的桥梁Commonsware项目,但有些问题出现.
资源清理:我使用单个活动,创建SQLiteOpenHelper onCreate()并关闭它onDestroy().由于加载程序管理器可能仍在运行,我检查它并pendingClose在我的回调对象上设置一个标志,因此它将在加载完成时关闭游标和帮助程序.我认为不关闭数据库是没有害处的,但SQLite抱怨如果你不这样做,我不喜欢错误消息:)这里的重点是数据不能在配置更改中存活,因此Loader优势消失
我应该创建多少个装载机?假设我有心爱的Customer人和Order桌子.装载机被认定ID就像CUST_L和ORD_L,但每次用户点击一些总结的时间我想与细节的屏幕带来.我应该restart是一个装有不同参数的装载机,还是应该init是一个带有随机ID的新装载机?这可能会发生几十次.Loader框架是针对许多小型运行的作业,还是仅针对一些长时间运行的任务?
ID在LoaderCallbacks界面内使用s 的目的是什么?为什么不简单initLoader(params, callback)?我不认为可以在回调中重用一些逻辑:最终他会分支(带ID if-else或switchID),所以我不明白给回调对象赋予标识符的意义,而不是一个天真的方法-每次操作回调.
我问这个是因为整个框架似乎对我来说过于工程化而没有实际效用.我不明白用a集中代码的意义LoaderManager,我看不出任何新的机会AsyncTask没有提供.
唯一的胜利点是配置改变生存,但由于资源清理我无法利用它,我无法找出另一种方法来关闭SQLiteOpenHelper因为(很明显)SQLiteCursorLoader需要它但是清理它取决于用户.所以AsyncTask看起来似乎是赢家的选择,但也许我错过了一些东西.
如果在可以更改其引用的字段上进行同步,则如下所述:
class A {
Object someObject;
void method(){
synchronized (someObject) {
Object newObject = new Object();
//possibly modify the old ref
if(chackCondition()){
someObject = newObject;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我担心这里可能会有一些奇怪的,低级的编译器优化,这可能让两个线程同时访问同步区域.任何评论都会得到很大的评价.
考虑node.js的这个小服务器
var net = require ('net');
var server = net.createServer(function (socket) {
console.log("Connection detected");
socket.on('end', function() {
console.log('server disconnected');
});
socket.write("Hello World");
socket.end();
});
server.listen("8888");
Run Code Online (Sandbox Code Playgroud)
当我在Macbook Pro上使用Chrome测试服务器时,我在控制台中收到三次"检测到连接"消息.
我知道一个用于连接,另一个用于favicon,但第三个是什么呢?
好的,我正在从XML文件中提取数据,以动态填充我的网页元素.我的问题是,当我使用JQuery .ajax来提取xml文件时,它会剥离我的HTML标记.
例如,
XML文件中的数据:
<transcript><p>Hello, world</p></transcript>
Run Code Online (Sandbox Code Playgroud)
网页上的所需输出:
<p>Hello, world</p>
Run Code Online (Sandbox Code Playgroud)
实际产量:
Hello World
Run Code Online (Sandbox Code Playgroud)
这是我的ajax函数中的代码:
$(xmlData).find('item').each(function() {
var n = $(this).find('transcript').text();
Run Code Online (Sandbox Code Playgroud)
我试过使用JQuery的'.html()',但它返回null.我能解决这个问题最简单的方法是什么?最好不要改变我已经做过的太多.
提前致谢.