小编Don*_*dle的帖子

MVC3和Code First Migrations - "创建数据库后,支持'blah'上下文的模型已经改变"

我使用Entity Framework Code First开始了我的项目.当我准备好时,我将我的数据库和代码上传到我的主机提供商.一切正常.

我需要在我的一个类中添加一个新字段,我不想丢失数据库中的数据.因此,我尝试了一些关于使用Code First Migrations的博客文章.我做了以下事情:

  1. 我备份了我的远程(生产)数据库.
  2. 我在本地附加了这个数据库
  3. 我把这个属性添加到了我的班级
  4. PM>启用 - 迁移
  5. PM> Add-Migration AddSortOrderToCar
  6. PM>更新 - 数据库
  7. 此时,我创建了本地数据库的.bak文件,然后使用该文件"恢复"到远程文件.
  8. 最后,我将代码发布到远程站点.

当我访问该网站时,我收到以下错误消息:自创建数据库以来,支持'blahblah'上下文的模型已更改.考虑使用Code First Migrations来更新数据库.

我究竟做错了什么?

entity-framework asp.net-mvc-3 ef-migrations

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

Thymeleaf:如何使用布局包含页面特定的javascript?

使用thymeleaf有一种方法来装饰我的布局w /我的页面特定的JavaScript和JavaScript包括?

<!--My Layout -->
<!DOCTYPE html>
<html>
<head>

</head>
<body>
<div th:replace="fragments/header :: header">

</div>
<div class="container">
    <div layout:fragment="content">

    </div>
</div>
</body>
</html>

<!--My Page -->
<!DOCTYPE html>
<html layout:decorator="layout">
<head>

</head>
<body>

<div layout:fragment="content">
    hello world
</div>

<script src="pageSpecific1.js"></script>
<script src="pageSpecific2.js"></script>
<script>
 alert("hello world")
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

spring-mvc thymeleaf

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

如何在tomcat服务器启动时加载java类(而不是servlet)

我需要不断更新和查询mysql数据库(我不认为我需要一个servlet来做这个,只是一个普通的java类).但我不知道如何调用该类或在servlet启动时运行它.

tomcat servlets

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

Azure - App Insights - 如何在 Auth Id 中跟踪登录的用户名?

在 App Insights 遥测中跟踪登录用户名/ID 的最佳支持方法是什么?

用户名为“JonTester1”的用户说他 4 小时前访问的一些页面真的很慢。我如何才能看到JonTester1在 App Insights 中所做的一切以排除故障/知道他指的是哪些页面?

似乎User Id在 App Insights 中是一些 Azure 生成的匿名事物,例如u7gbhAzure 与它自己对同一用户的想法有关(通过 cookie?)。它根本不知道我们应用程序的用户名

我也看到了在应用程式深入分析一个单独的字段叫Auth Id(或user_AuthenticatedId某些地方),看起来到有时有实际的用户名,例如“JonTester1”填补了-但并不总是......虽然我没有看到任何提及的文档中的这个领域,似乎很有希望。我们的应用程序的代码/配置应该如何设置Auth Id以确保每个 App Insights 日志/遥测都已设置?

相关的 MS 文档:

asp.net-mvc azure azure-application-insights

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

Tess4J - 在资源路径中找不到本机库 (linux-x86-64/libtesseract.so)

我正在使用 Tess4J(Tesseract 的 JNA 包装器),并尝试tess.doOCR(myFile)从单页 PDF 调用 OCR 文本。

我安装了 GhostScript(通过使用yum install ghostscript),gs -h工作正常。

我的应用程序服务器正在使用64-bit JVM,并且我有gsdll64.dll,以及 64 位 tesseract dll 的liblept168.dlllibtesseract302.dll在类路径中。

tess.doOCR(myFile)调用时,会记录以下内容:

GPL Ghostscript 8.70 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Run Code Online (Sandbox Code Playgroud)

但随后就到此为止了。该计划不再继续。

更新 -

看起来真正的问题来自这个错误:

java.lang.UnsatisfiedLinkError: Unable to load library 'tesseract': Native …

pdf tesseract ghostscript tess4j

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

SocketTimeoutException:插入到Google云端硬盘时读取超时-是否可以重试?

类似于File.insert.execute上的Java Google Drive SDK SocketTimeoutException

上载成千上万个文件,似乎每50个文件中就有1个抛出

java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:152)
        at java.net.SocketInputStream.read(SocketInputStream.java:122)
        at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
        at sun.security.ssl.InputRecord.read(InputRecord.java:480)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)
        at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884)
        at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
        at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
        at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1323)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
        at com.google.api.client.http.javanet.NetHttpResponse.<init>(NetHttpResponse.java:36)
        at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:94)
        at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:965)
        at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequestWithoutGZip(MediaHttpUploader.java:545)
        at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequest(MediaHttpUploader.java:562)
        at com.google.api.client.googleapis.media.MediaHttpUploader.executeUploadInitiation(MediaHttpUploader.java:519)
        at com.google.api.client.googleapis.media.MediaHttpUploader.resumableUpload(MediaHttpUploader.java:384)
        at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:336)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:418)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
...
Run Code Online (Sandbox Code Playgroud)

files().insert().execute()

我不确定插入文件时收到此异常的“含义”。

  1. 这是否意味着未满足插入请求?
  2. 这是否仅表示客户端在发送插入请求后没有收到Google服务器的回音?
  3. 出现exponential back-off and retry此错误时该怎么办?

java exception google-drive-api

5
推荐指数
2
解决办法
1735
查看次数

Windows 64位上的Tess4j:多线程上的异常

我在Windows 64位上使用tesseract 3和Java 8到OCR扫描的PDF.我已经按照Tess4j页面上说明使用了64位版本的所需DLL,并安装了64位Ghostscript.

当我使用正常的@Test(无参数)运行我的单元测试时,代码运行正常,所以我想我已经正确安装了所有内容.

当我用2个并行线程运行它时(见下文),我得到一个例外.

我在这里已经阅读了相关的主题,但建议使用我正在使用的Tesseract1(我已经尝试了两个).

有任何想法吗?

这是代码:

//  @Test // works
@Test(invocationCount = 2, threadPoolSize = 2)
public void testOcr() throws OcrException, TesseractException {
    File scannedPdf = new File(this.getClass().getClassLoader().getResource("scanned.pdf").getFile());
//  Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping
    Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping
    String str = instance.doOCR(scannedPdf);
    System.out.println("OCR Result: " + str);
}
Run Code Online (Sandbox Code Playgroud)

这是例外:

log4j:WARN No appenders could be found for logger (org.ghost4j.Ghostscript).
log4j:WARN Please initialize …
Run Code Online (Sandbox Code Playgroud)

java multithreading tesseract ghost4j tess4j

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

强制抽象类中的方法执行顺序

我有一个业务案例,其中需要依次发生3件事:

  1. 下载()
  2. 处理()
  3. upload()

现在,抽象类FileTransfer提供了1. downloadFiles()和3. upload()的实现,但不提供2. process()- 子类(例如MusicFileTransfer或VideoFileTransfer或PDFFileTransfer)将在2. process( )阶段。

因此,使抽象类看起来像这样很明显:

public abstract class FileTransfer {

public void download() {
    // implementation provided
}

public abstract void process(); // implementation not provided

public void upload() {
    // implementation provided
}

}
Run Code Online (Sandbox Code Playgroud)

但是有一个问题- 永远 不会有这样的时间,例如MusicFileTransfer在download()或任何其他顺序之前调用process()。该进程必须始终为1. download(),2。process(),然后为3. upload()。

所以我想像这样:

public void doTransfer() {
    // private methods since we want to enforce this order of execution
    download(); // implem provided
    process(); // abstract method
    upload(); // implem provided
}
Run Code Online (Sandbox Code Playgroud)

在FileTransfer中包装这三个调用。但是为了使子类MusicFileTransfer覆盖process()...,它必须是公共的或受保护的(非私有的)。 …

java oop abstract-class design-patterns

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

如何告诉Eclipse不包含项目引用,而是在本地repo中获取JAR以获取自定义依赖项

我有两个用Maven构建的库,然后安装到本地仓库中.

在我的应用程序中,我正在使用这两个库,因此我以标准方式在我的pom中引用它们:

<dependency>
  <groupId>...</groupId>
  <artifactId>simple-google-drive-manager</artifactId>
  <version>1.0-SNAPSHOT</version
</dependency>

<dependency>
  <groupId>...</groupId>
  <artifactId>PdfBoxUtils</artifactId>
  <version>1.0-SNAPSHOT</version
</dependency>
Run Code Online (Sandbox Code Playgroud)

两个库是PdfBoxUtils和simple-google-drive-manager

在Eclipse中,在Maven依赖项下,大多数事情都artifactId-version.jar按预期列出.但对于我制作的自定义库,Eclipse认识到它们位于相同的工作空间中,而不是包含jar,包括项目本身.

在此输入图像描述

我不想要这个!令人困惑,我希望能够强制这个项目使用本地安装的库,而不仅仅是库项目源中的当前库.

我如何让eclipse 实际使用本地仓库中的JAR而不是引用本地项目?

java eclipse maven

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

如何使用Unicode字符集的语言创建有关使用第三方字体的PDF文档

我正在使用PDFBoxiText从各种语言创建一个简单(只是段落)的pdf文档.就像是 :

pdfBox:

private static void createPdfBoxDocument(File from, File to) {
    PDDocument document = null;
    try {
        document = new TextToPDF().createPDFFromText(new FileReader(from));
        document.save(new FileOutputStream(to));
    } finally {
        if (document != null)
            document.close();
    }
}

private void createPdfBoxDoc() throws IOException, FileNotFoundException, COSVisitorException {
    PDDocument document = new PDDocument();
    PDPage page = new PDPage();
    document.addPage(page);
    PDPageContentStream contentStream = new PDPageContentStream(document, page);

    PDType1Font font = PDType1Font.TIMES_ROMAN;
    contentStream.setFont(font, 12);
    contentStream.beginText();
    contentStream.moveTextPositionByAmount(100, 400);
    contentStream.drawString("š");
    contentStream.endText();
    contentStream.close();
    document.save("test.pdf");
    document.close();
}
Run Code Online (Sandbox Code Playgroud)

itext …

java fonts itext pdfbox

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

无限循环+ Thread.sleep替换cron作业

所以今天我脑子里有了一个想法...而且我想听一些反馈.我有一个Java应用程序,需要每5分钟检查一个目录.简单而简单的应用程序需要每五分钟运行一次.

看起来像cronjob的一个很好的候选人,但我想知道...为什么不保持逻辑/时间在应用程序中像这样(显然简化):

public static void main(String[] args) {
    while(true) { // repeatedly execute...
        // do the work/job
        Thread.sleep(600 * 1000); // make the thread sleep for 5 minutes
    }
}
Run Code Online (Sandbox Code Playgroud)

我看到的一个重要缺点是" 一旦它开始,我们如何停止这个应用程序?删除它?

除了那个之外,还有其他重要的缺点吗?

我应该停止做白日梦而只是使用cron工作吗?

java cron multithreading sleep infinite-loop

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