只是一个简单的问题(我猜).Oracle 为Oracle Database 12c发布了一个新的JDBC驱动程序,包括Java 7 JDBC驱动程序(ojdbc7 - 12.1.0.1).在这里,我们一直在使用Oracle 10g数据库和ojdbc6 for Oracle 11g(11.2.0.4),没有任何问题.现在,我的问题.
如果我升级我的应用程序服务器以使用ojdbc7 for Oracle 12c,它是否存在风险?Oracle是否保持其驱动程序与先前版本的兼容性?
我正在使用Hibernate 4.3.0.Final/JPA 2.1,Hibernate Search 4.5.0.Final在WildFly 8.0.0.Final上运行.我的应用程序工作正常,但我正在创建索引时收到此休眠警告.
WARN org.hibernate.loader.Loader - HHH000444:遇到锁定请求,但是数据库喜欢锁定的方言报告是在单独的选择中完成的(后续锁定); 初始查询执行后,结果将被锁定
这是创建索引的方法:
public void createIndex() throws DAOException {
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(this.entityManager);
try {
fullTextEntityManager.createIndexer(Colaborador.class)
.purgeAllOnStart(Boolean.TRUE)
.optimizeOnFinish(Boolean.TRUE)
.startAndWait();
}
catch (InterruptedException e) {
logger.error("Error creating index", e);
throw new DAOException(e);
}
}
Run Code Online (Sandbox Code Playgroud)
我做了一些搜索,我发现了一个"解决方案",或者更好的说,是一种抑制警告的方法.但是,我不知道这是否是最佳解决方案.解决方案建议扩展org.hibernate.dialect.Oracle10gDialect和覆盖public boolean useFollowOnLocking()返回的方法false.
其他重要的事情:这只发生在Hibernate版本4.2.0.Final之后.在此版本之前,没有useFollowOnLocking()方法.
新方言:
import org.hibernate.dialect.Oracle10gDialect;
public class MyOracle10gDialect extends Oracle10gDialect {
@Override
public boolean useFollowOnLocking() {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个自定义类,我必须在我的视图中使用.但我是怎么做到的?
在Laravel 4.2中,我只需运行composer.phar dump-autoload并添加start/local.php如下:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/helpers/MyClass',
));
Run Code Online (Sandbox Code Playgroud)
最后,在我看来,我只是使用我的课程:MyClass::myMethod().再次,我如何使用Laravel 5做到这一点?
谢谢
我正在消费者模式下使用Netty4组件(http://camel.apache.org/netty4.html)构建一个具有Apache Camel路由的微服务.所以,在我的微服务中,我正在构建的这条路由将通过TCP连接接收消息.为此,我这样做了:
@Override
public void configure() throws Exception {
this.from("netty4:tcp://localhost:7000?textline=true&encoding=utf8")
.process(new Processor() {
@Override
public void process(final Exchange exchange) throws Exception {
log.info("[Processor] - Incoming Message -> {}", exchange.getIn().getBody(String.class));
}
}).to("bean:messageService");
}
Run Code Online (Sandbox Code Playgroud)
好吧,我正常收到这些消息.要测试,我使用telnet:
$ telnet localhost 7000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
TheMessage
Run Code Online (Sandbox Code Playgroud)
问题是当我想将消息发送回在该路由中建立的同一TCP通道时.在同步模式下,我可以使用Exchange对象轻松完成.但是,在异步模式下,我不知道如何将消息发送回生产者.
接收并应发送消息的Spring Service是:
@Service
public class MessageService {
private static final Logger log = LoggerFactory.getLogger(MessageService.class);
private List<String> messageStore = new LinkedList<>();
public void sendToTCP(final String message) {
log.info("[Service] …Run Code Online (Sandbox Code Playgroud) 我开发了一个新的应用程序,它在Tomcat 7上运行完美!但我正在尝试在Tomcat 8上部署相同的WAR,而我正在使用它NullPointerException.为了开发这个应用程序,我使用了以下框架和库:
在Tomcat 7.0.42上部署时没有发生错误.运行很好.但是,当我在Tomcat 8.0.0 RC5上部署相同的WAR时,我遇到了这个异常:
30-Oct-2013 16:00:27.659 INFO [http-nio-8080-exec-2] org.apache.catalina.core.ApplicationContext.log No state saving method defined, assuming default server state saving
30-Oct-2013 16:00:29.499 SEVERE [http-nio-8080-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [Faces Servlet] in context with path [/contacel] threw exception [null] with root cause
java.lang.NullPointerException
at org.apache.myfaces.view.facelets.tag.TagAttributeImpl.getBoolean(TagAttributeImpl.java:143)
at org.apache.myfaces.view.facelets.tag.jstl.core.IfHandler.apply(IfHandler.java:105)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:310)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
at …Run Code Online (Sandbox Code Playgroud) 好的,首先,我已经检查了许多有关此错误的网站,但不幸的是,没有一个对我有帮助。我有以下简单的查询:
select * from (
select to_date(cal.year || cal.month || cal.day, 'yyyymmdd') as datew,
cal.daytype as type
from vw_calendar cal)
where datew > sysdate;
Run Code Online (Sandbox Code Playgroud)
当我尝试执行整个查询时,出现此错误:
ORA-01839: 日期对于指定的月份无效
如果我只执行查询:
select to_date(cal.year || cal.month || cal.day, 'yyyymmdd') as datew,
cal.daytype as type
from vw_calendar cal;
Run Code Online (Sandbox Code Playgroud)
它工作得很好。如果要查看查询结果:http : //pastebin.com/PV95g3ac
我检查了一个月中的第 31 天或闰年,一切似乎都正确。我不知道该怎么办了。我的数据库是 Oracle 10g,我尝试在 SQL Developer 和 PL/SQL Developer 上执行查询。两个 IDE 上的错误相同。
当我尝试仅使用一个关键字进行搜索时,使用Hibernate Search 4.5.0.Final的应用程序运行正常。但是,如果我尝试使用两个关键字,那么Hibernate Search不会使用第二个关键字,HS只会考虑第一个。
例如,如果我尝试搜索“ James”,则搜索工作正常,并且应用程序返回索引中包含的所有“ James”。但是,如果我尝试搜索“ James Hetfield”,结果还是所有“ James”,而不是名称为“ James Hetfield”的唯一结果。我需要将“ James Hetfield”视为“ James AND Hetfield”。
编辑:我犯了一个错误。搜索使用两个关键字,但是使用“ OR”而不是“ AND”。
我的代码:
public List<Person> search(String keywords) throws DAOException {
try {
FullTextEntityManager fullTextEm = Search.getFullTextEntityManager(this.entityManager);
QueryBuilder qb = fullTextEm.getSearchFactory().buildQueryBuilder().forEntity(Person.class).get();
Query query = qb.keyword().onFields("name", "email", "username", "phone").matching(keywords).createQuery();
FullTextQuery fullTextQuery = fullTextEm.createFullTextQuery(query);
fullTextQuery.setProjection("name", "email", "username", "phone");
Sort sortField = new Sort(new SortField("name_order", SortField.STRING));
fullTextQuery.setSort(sortField);
return fullTextQuery.getResultList();
}
catch (Exception e) {
logger.error("Error searching index: " + …Run Code Online (Sandbox Code Playgroud) 我正在WildFly 8.1.0上运行一个Web应用程序,显然我的应用程序工作正常.但是,查看日志文件时我发现了一个奇怪的异常.我以前从未见过这个例外.
我使用Apache 2.4作为反向代理.此反向代理使用AJP端口完成.
javax.servlet.ServletException:Cookie名称"ctx:1420m06d05"是保留令牌
2014-07-07 11:10:57,512 ERROR [io.undertow.request] (default task-23) UT005023: Exception handling request to /app/emp/index.jspa: javax.servlet.ServletException: Cookie name "ctx:1420m06d05" is a reserved token
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) [jboss-jsf-api_2.2_spec-2.2.6.jar:2.2.6]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] …Run Code Online (Sandbox Code Playgroud) 我正在研究Laravel框架,我遇到了一些队列问题.Laravel提供了一个统一的API来处理队列,我正在研究它.Laravel提供的方法之一是Queue::later(DateTime|int $delay, string $job, mixed $data = '', string $queue = null);
所以,我实现了我的工作类:
<?php
class SendEmail {
public function send($job, $data) {
Log::info('JOB: ' . $job->getName());
Log::info('DATA: ' . $data['message']);
}
}
Run Code Online (Sandbox Code Playgroud)
上面,我登录了一个文件,收到的参数.只是想知道它是否有效.我的控制器使用Queue API以这种方式调用作业:
<?php
class MyControllerController extends BaseController {
function index() {
LOG::debug('Index action STARTED');
$date = Carbon::now()->addMinutes(2);
Queue::later($date, 'SendEmail@send', array('message' => 'MY MESSAGE!'));
$view = View::make('index');
LOG::debug('Index action FINISHED');
return $view;
}
}
Run Code Online (Sandbox Code Playgroud)
看看我正在使用Queue::later().我希望send()类的方法SendEmail在2分钟后执行.好吧,我完成了实现空白视图并设置路线.然后我向我的控制器发出GET请求,然后我去检查日志文件.
我在打开日志文件时看到了这个:
[2014-10-02 16:23:11] production.DEBUG: Index action STARTED …Run Code Online (Sandbox Code Playgroud)