我在netbeans中遇到这个编译器错误:
需要不兼容的类型:找到的字符串:java.lang.String
我有点失落,为什么会这样?
码:
private class StringIterator<String> implements Iterator<String> {
private Iterator<Entry<K, byte[]>> i = internalMap.entrySet().iterator();
@Override
public boolean hasNext() {
return i.hasNext();
}
@Override
public String next() {
return decompress(i.next().getValue());// error on this line
}
@Override
public void remove() {
i.remove();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个动态的PHP页面,我需要使用get参数调用.然后,我想将生成的html放入一个字符串中,稍后再使用它(我正在尝试使用tonic框架进行Web服务)
所以这类似于PHP - 将动态生成(和回显)的HTML读入字符串?我尝试了使用cURL的答案.
问题是使用ntlm(apache mod_auth_sspi)完成身份验证.执行curl的php脚本已经过身份验证,例如,只有有效的用户才能执行它.以某种方式可以将这些"凭据"传递给cURL?(用户名可用但当然不是密码)
或者一个完全不同的方法也可以,但我只想创建一个创建带有html内容的字符串的函数.
$response = new Response($request);
$format = $request->mostAcceptable(array(
'json', 'html', 'txt'
));
switch ($format) {
case 'html':
$response->addHeader('Content-type', 'text/html');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/viewRecord.php?identifier=' . $identifier);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
$html = curl_exec($ch);
curl_close($ch);
$response->body = $html;
break;
//...
}
Run Code Online (Sandbox Code Playgroud) 类似问题:
使用 win32file.ReadFile 从管道获取输出的正确方法是什么?
然而,我的问题在那个问题中没有得到回答。当我打电话
result, data = win32file.ReadFile(my_file, 4096, None)
Run Code Online (Sandbox Code Playgroud)
结果始终为 0,根据文档,这意味着成功:
The result is a tuple of (hr, string/PyOVERLAPPEDReadBuffer), where hr may be 0,
ERROR_MORE_DATA or ERROR_IO_PENDING.
Run Code Online (Sandbox Code Playgroud)
即使我将缓冲区设置为 10 并且文件大得多,结果也是 0 并且数据是包含前 10 个字符的字符串。
result, buf = win32file.ReadFile(self._handle, 10, None)
while result == winerror.ERROR_MORE_DATA:
result, data = win32file.ReadFile(self._handle, 2048, None)
buf += data
print "Hi"
return result, buf
Run Code Online (Sandbox Code Playgroud)
即使文件明显包含更多数据,也永远不会打印“嗨”。我的问题是如何确保在不使用荒谬的大缓冲区的情况下读取整个文件?
我是熊猫的新手并且对它非常困惑,特别是与列表和使用列表推导相比.
我有一个包含4列的数据框.我想基于第4列"m"创建第5列"c".我可以通过对"m"列中的每一行应用我的函数来获取"c"的值.
如果"m"是一个列表并使用列表理解它将是
c = [myfunction(x) for x in m]
Run Code Online (Sandbox Code Playgroud)
如何将此"逻辑"应用于数据框?
第一次使用java邮件。我正在遵循本教程,但我已经无法发送基本消息,并且收到一个非常奇怪的错误:
java.util.ServiceConfigurationError: javax.mail.Provider: Provider com.sun.mail.imap.IMAPProvider not a subtype
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我没有在代码中的任何地方使用 IMAP:
Properties mailProps = new Properties();
mailProps.put("mail.transport.protocol", "smtp");
mailProps.put("mail.host", "smtp.mydomain.com");
mailProps.put("mail.from", "me@mydomain.com");
mailProps.put("mail.smtp.port", "25");
Session session = Session.getDefaultInstance(mailProps);
SMTPMessage m = new SMTPMessage(session);
MimeMultipart content = new MimeMultipart();
MimeBodyPart mainPart = new MimeBodyPart();
mainPart.setText("test");
content.addBodyPart(mainPart);
m.setContent(content);
m.setSubject("Demo message");
m.setRecipient(RecipientType.TO, new InternetAddress("john@example.com"));
Transport.send(m);
Run Code Online (Sandbox Code Playgroud)
错误发生在最后一行(发送)。我知道 smtp 服务器正确且正常工作。
有什么建议为什么会发生这种情况以及我该如何解决它吗?
编辑:显然,地址/主机在这里发生了变化,我使用的是在实际代码中工作的真实地址/主机。
我有一个与这个旧问题相关的问题:
我们进行了内部讨论,一位更资深的开发人员坚持认为我错了。讨论围绕数据库连接进行。
当您使用 Gunicorn 部署 wsgi 应用程序并且有 5 个同步工作线程时,我假设每个工作线程都是一个完全独立的进程,托管完整的 wsgi 应用程序,不与任何其他进程或主进程共享。
本质上,我想解释一下,使用数据库连接池可能没有意义,因为每个进程只有 1 个活动请求,因此只需要 1 个活动连接。如果你创建一个池,所有 5 个工作线程都将拥有自己的完全独立的连接池,因此最终会产生太多连接。
所以我的问题是,我的假设是否正确,或者其他开发人员声称连接池将在同步工作人员之间共享是正确的吗?
我正试图在清单中获得mercurial修订号.我已阅读以下说明:
http://maven.apache.org/plugin-developers/cookbook/add-svn-revision-to-manifest.html
我没有收到错误消息,但清单中的SCM-Revision属性始终为空.
POM部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>hgchangeset</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>true</doUpdate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<SCM-Revision>${buildNumber}</SCM-Revision>
</manifestEntries>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我有一种导入数据的方法.如果导入很大,则它不能在单个事务中运行,而不会由于巨大的事务语句缓存而导致OutOfMemoryError.
我想要的是在语句缓存中的n条记录之后手动提交.
我怎样才能做到这一点?(最好在@Transactional方法中).
在我目前的项目中,我使用Spring Data JPA和Hibernate,但认为这是一个更普遍的问题,也应该涵盖"普通"JPA.
我不确定OptimisticLockException在使用时应该如何处理@Version.
由于我的应用程序是如何工作的一些关系,有CascadeType.PERSIST和CascadeType.REFRESH,其他人也有CascadeType.MERGE.
OptimisticLockException据我所知,在服务层处理这个问题不会特别有效,CascadeType.MERGE因为那时违规实体可能是需要由另一个服务处理的实体(我每个实体类都有一个服务).
问题是我正在创建一个框架,因此没有服务上面的层,所以我可以将其"委托"给我的框架用户,但这似乎"软弱和懒惰".
如果发生OptimisticLockException,如何获取导致该问题的实体以及更改了哪些字段?
是的,我可以打电话getEntity()但如何将其转换为正确的类型,特别是如果使用CascadeType.MERGE?该实体可以是多种类型,因此instanceof可以想到if/switch,但这看起来像地狱一样难看.
一旦我有正确的类型,我需要获得版本之间的所有差异,不包括某些字段,如版本本身或lastModifiedDate.
在我的脑海中还有HTTP 409,它表示如果冲突响应应该包含冲突的字段.
所有这些都有"最佳实践模式"吗?
我有一个大的单个pdf文档,其中包含多个记录.每个记录通常占用一页,但有些使用2页.记录以定义的文本开头,始终相同.
我的目标是将这个pdf分成单独的pdf,并且应该在找到"标题文本"之前发生拆分.
注意:我正在寻找使用java或python的工具或库.必须是免费的并且可用Win 7.
有任何想法吗?AFAIK imagemagick不适用于此.可以itext这样做吗?我从来没用过,而且非常复杂所以需要一些提示.
编辑:
标记答案让我解决了问题.为了完整性,我的确切实施:
public void splitByRegex(String filePath, String regex,
String destinationDirectory, boolean removeBlankPages) throws IOException,
DocumentException {
logger.entry(filePath, regex, destinationDirectory);
destinationDirectory = destinationDirectory == null ? "" : destinationDirectory;
PdfReader reader = null;
Document document = null;
PdfCopy copy = null;
Pattern pattern = Pattern.compile(regex);
try {
reader = new PdfReader(filePath);
final String RESULT = destinationDirectory + "/record%d.pdf";
// loop over all the pages …Run Code Online (Sandbox Code Playgroud)