我最近将我们的项目升级到grails 2.3.0.一切正常,但每当我对代码进行更改时,我一直遇到自动重载问题.这包括所有项目人工制品 - 控制器,域,服务,gsps,css和javascript文件.
我的旧版本的grails正常工作,每次进行更改时都会重新加载并重新编译.
我知道这个问题很受欢迎,我已经搜索了Jira,Nabble和这里好几天了但是我发现的一切都没能解决我的问题(我甚至试图在这个帖子中添加像Peter这样的引号http:/ /jira.grails.org/browse/GRAILS-7936以及此线程Grails Project Not Auto Reloading没有帮助).
我目前在Macbook Pro上使用以下设置运行grails:
任何帮助将不胜感激.
我有3007 x 1644维度矩阵的术语和文档.我正在尝试为每个文档中的术语频率分配权重,因此我使用此日志熵公式http://en.wikipedia.org/wiki/Latent_semantic_indexing#Term_Document_Matrix(请参阅最后一行中的熵公式).
我成功地做了这个,但我的代码运行了大约7分钟.这是代码:
int N = mat.cols();
for(int i=1;i<=mat.rows();i++){
double gfi = sum(mat(i,colon()))(1,1); //sum of occurrence of terms
double g =0;
if(gfi != 0){// to avoid divide by zero error
for(int j = 1;j<=N;j++){
double tfij = mat(i,j);
double pij = gfi==0?0.0:tfij/gfi;
pij = pij + 1; //avoid log0
double G = (pij * log(pij))/log(N);
g = g + G;
}
}
double gi = 1 - g;
for(int j=1;j<=N;j++){
double tfij = mat(i,j) + 1;//avoid log0 …Run Code Online (Sandbox Code Playgroud) GORM 6.1 引入了数据服务的概念。我认为它们是在编译时检查的自动生成的持久性逻辑。我对以下内容有些困惑:
grails generate-all Domain为 REST 配置文件生成了一个数据服务接口。这让我很困惑我们是否可以在服务中使用非持久性相关的方法名称。更新:我要问的是:gorm.grails.org/latest/hibernate/manual/#dataServices。我试图了解这些与此有何不同:docs.grails.org/latest/guide/services.html以及何时使用它们。
我的程序中有以下代码。
//Compare class
class SortByFutureVolume
{
public:
SortByFutureVolume(const Graph& _g): g(_g){}
bool operator() (const Index& lhs, const Index& rhs){
return g.getNode(lhs).futureVolume() > g.getNode(rhs).futureVolume();
}
private:
Graph g;
};
Run Code Online (Sandbox Code Playgroud)
然后我用它来排序:
std::sort(nodes.begin(), nodes.end(),SortByFutureVolume(g));
Run Code Online (Sandbox Code Playgroud)
当我在 Mac 计算机上针对大小为 23K 的向量运行上述代码时,它会在几分之一秒内完成。然而,当我在我的 ubuntu 14 机器上运行时。这需要几分钟,而且还没有完成。
我搜索这个问题并在这里找到了以下解决方案Can I Prevent std::sort from copying the passed Comparison object
基本上修改我的代码就可以解决问题:
SortByFutureVolume s(g);
std::sort(_nodes.begin(), _nodes.begin()+ end, std::ref(s));
Run Code Online (Sandbox Code Playgroud)
此后,我的 mac 和 ubuntu 上的运行时间是相当的。快得多。
我知道这有效,但我想理解为什么?我知道上面的缓慢代码是由于复制图表和 SortByFutureVolume 造成的。为什么需要 std::ref()?这个解决方案是否正确,是否有更好的方法来做到这一点?
我正在尝试使用JNI将C程序移植到android.我已经能够设置程序并使java和c一起正常工作.问题是我需要能够使用STDIN,因为C程序从STDIN读取输入并通过STDOUT返回响应(C程序是服务器 - 客户端应用程序).我不知道是否值得一提,但C程序使用STDIN_FILENO文件描述符来读取STDIN的输入. 如何使用Java从STDOUT和WRITE读取到STDIN?
我做了一些研究,并在以下链接中找到了一些模糊的解释:https://groups.google.com/forum/#!topic / installer -ndk/Brm6jPr4C0Y,我不明白.
这是C代码https://github.com/unekwu/kemi/blob/master/jni/dnscat/dnscat.c#L1270
更多细节
C程序通常从命令行运行,
dnscat --dns <ip> <port>
之后它开始侦听来自用户的消息.通常从stdin输入.
现在在我的Android应用程序中,我可以通过调用main和不同的名称并将ann数组字符串传递给它来运行它与JNI.我验证程序是否开始纠正.问题是我将如何将消息发送到程序,因为android上没有stdin.
我正在为我的一门课做作业。
我应该编写一个网络爬虫,从给定指定爬网深度的网站下载文件和图像。
我被允许使用第三方解析 api 所以我使用的是Jsoup。我也试过htmlparser。两款软件都不错,但都不完美。
我在处理 url 之前使用默认的 java URLConnection来检查内容类型,但随着链接数量的增加,它变得非常慢。
问题:有人知道任何专门的图像和链接解析器 api 吗?
我可以开始使用 Jsoup 编写我的代码,但我很懒惰。此外,如果有一个可行的解决方案,为什么要重新发明轮子呢?任何帮助,将不胜感激。
我需要在循环链接时检查 contentType,以有效的方式检查链接是否指向文件,但 Jsoup 没有我需要的东西。这是我所拥有的:**
HttpConnection mimeConn =null;
Response mimeResponse = null;
for(Element link: links){
String linkurl =link.absUrl("href");
if(!linkurl.contains("#")){
if(DownloadRepository.curlExists(link.absUrl("href"))){
continue;
}
mimeConn = (HttpConnection) Jsoup.connect(linkurl);
mimeConn.ignoreContentType(true);
mimeConn.ignoreHttpErrors(true);
mimeResponse =(Response) mimeConn.execute();
WebUrl webUrl = new WebUrl(linkurl,currentDepth+1);
String contentType = mimeResponse.contentType();
if(contentType.contains("html")){
page.addToCrawledPages(new WebPage(webUrl));
}else if(contentType.contains("image")){
page.addToImages(new WebImage(webUrl));
}else{
page.addToFiles(new WebFile(webUrl));
}
DownloadRepository.addCrawledURL(linkurl);
}**
Run Code Online (Sandbox Code Playgroud)
更新 基于 Yoshi 的回答,我能够让我的代码正常工作。这是链接:
我有一个简单的grails服务:
@Transactional
class SearchService {
def doSomething() {
10
}
}
Run Code Online (Sandbox Code Playgroud)
通过简单的单元测试:
class SearchServiceSpec extends Specification implements ServiceUnitTest<SearchService>{
def setup() {
}
def cleanup() {
}
void "test something"() {
expect:
service.doSomething() == 10
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我得到以下异常:
谁知道这意味着什么?
奇怪的是,如果我改变工作doSomething到getSomething,然后做service.something.
我有以下版本:| Grails版本:3.3.0 | Groovy版本:2.4.11 | JVM版本:1.8.0_60
java ×4
grails ×3
c ×2
c++ ×2
android ×1
android-ndk ×1
grails-2.3 ×1
grails-3.3 ×1
grails-orm ×1
html-parsing ×1
jsoup ×1
math ×1
sorting ×1
unit-testing ×1
web-crawler ×1