小编Emm*_*ohn的帖子

Grails 2.3.0自动重装无法正常工作

我最近将我们的项目升级到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:

  • grails版本2.3.0
  • Java版"1.7.0_17"Java(TM)SE运行时环境(版本1.7.0_17-b02)Java HotSpot(TM)64位服务器VM(版本23.7-b01,混合模式)
  • 使用Textmate作为IDE从终端运行

任何帮助将不胜感激.

java grails grails-2.3

39
推荐指数
3
解决办法
2万
查看次数

优化稀疏矩阵中的对数熵计算

我有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)

c c++ math

5
推荐指数
1
解决办法
313
查看次数

GORM 数据服务 VS Grails 服务

GORM 6.1 引入了数据服务的概念。我认为它们是在编译时检查的自动生成的持久性逻辑。我对以下内容有些困惑:

  1. 它们与 Grails 服务有何不同(除了编译时间差异)?
  2. 是否仍然可以在 GORM 数据服务中实现我的自定义业务逻辑,或者我是否需要维护两个服务,一个用于持久性 (GORM),另一个 (GRAILS) 用于其他非持久性相关业务逻辑(例如,发出外部 REST 请求)并根据响应采取行动)。
  3. 我注意到grails generate-all Domain为 REST 配置文件生成了一个数据服务接口。这让我很困惑我们是否可以在服务中使用非持久性相关的方法名称。

更新:我要问的是:gorm.grails.org/latest/hibernate/manual/#dataServices。我试图了解这些与此有何不同:docs.grails.org/latest/guide/services.html以及何时使用它们。

grails grails-orm

5
推荐指数
1
解决办法
1069
查看次数

将对象传递给比较函数会使排序变慢?

我的程序中有以下代码。

//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()?这个解决方案是否正确,是否有更好的方法来做到这一点?

c++ sorting

4
推荐指数
1
解决办法
867
查看次数

在Android中重定向C程序的STDIN和STDOUT

我正在尝试使用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.

c java java-native-interface android android-ndk

3
推荐指数
1
解决办法
2633
查看次数

专门用于下载图像和文件的网络爬虫

我正在为我的一门课做作业。

我应该编写一个网络爬虫,从给定指定爬网深度的网站下载文件和图像。

我被允许使用第三方解析 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 的回答,我能够让我的代码正常工作。这是链接:

https://github.com/unekwu/cs_nemesis/blob/master/crawler/crawler/src/cu/cs/cpsc215/project1/parser/Parser.java

java web-crawler html-parsing jsoup

2
推荐指数
1
解决办法
7860
查看次数

IllegalStateException运行Grails服务单元测试

我有一个简单的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)

当我运行测试时,我得到以下异常:

在此输入图像描述

谁知道这意味着什么?

奇怪的是,如果我改变工作doSomethinggetSomething,然后做service.something.

我有以下版本:| Grails版本:3.3.0 | Groovy版本:2.4.11 | JVM版本:1.8.0_60

java grails unit-testing grails-3.3

1
推荐指数
1
解决办法
187
查看次数