我已经创建了我的应用程序并在Windows下进行了测试,它在访问DB文件中写入/读取.
但是在现实世界中,它将在linux环境中运行,现在我有一个大问题,似乎没有驱动程序可以让linux访问ms acess db,这里是我现在建立连接的方式:
private static Connection getConnection() {
if (connection == null) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String conStr = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + configuration.getAccessDbFile();
connection = DriverManager.getConnection(conStr);
} catch (Exception e) {
e.printStackTrace();
}
}
return connection;
}
Run Code Online (Sandbox Code Playgroud)
有没有人遇到类似的事情,有人有建议我该怎么办?
这是我在linux上的例外:
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:436)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:153)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
Run Code Online (Sandbox Code Playgroud) 有没有办法编写自定义比较器,遵循此示例:
最多有10个项目以随机顺序进入,即
first item: item_one
second: second_one
third: third_one
Run Code Online (Sandbox Code Playgroud)
我想他们产生进行排序,如:second_one,third_one,first_one.我想从配置文件中提取此顺序,有点像排序模板.
我使用错误的数据结构,有没有人有这方面的经验?
我有一个使用Java中的CXF实现的SOAP Web服务.在服务器端计算方法执行的好方法是什么?
我现在所做的是使用了拦截器.我public static long start在我的InInterceptor(Phase.RECEIVE)中定义了.在我的OutInterceptor(Phase.SEND)中,我计算响应时间如下:
@Override
public void handleMessage(Message arg0) {
long stop = System.currentTimeMillis();
long executionTime = stop - RequestStartInterceptor.start;
System.out.println("execution time was ~" + executionTime + " ms");
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?我正在阅读关于通过代理方法的执行,但我不知道如何做到这一点.
问题更新:
我用google搜索我的方式使用代理的第二种方式,即:
@Aspect
public class MyServiceProfiler {
@Pointcut("execution(* gov.noaa.nhc.*.*(..))")
public void myServiceMethods() { }
@Around("myServiceMethods()")
public Object profile(ProceedingJoinPoint pjp) throws Throwable {
long start = System.currentTimeMillis();
System.out.println("Going to call the method.");
Object output = pjp.proceed();
System.out.println("Method execution completed.");
long elapsedTime = System.currentTimeMillis() - start;
System.out.println("Method …Run Code Online (Sandbox Code Playgroud) 我的xml看起来像这样:
<elements>
<elem>
....bunch of other elements
</elem>
</elements>
Run Code Online (Sandbox Code Playgroud)
有没有办法通过elemlinux shell计算某些xml文件中标记的出现次数?像perl/python或任何可能作为一个衬垫的东西?
我可能会尝试类似的东西grep -c "elem" myfile.xml和我得到的数字2并得到数字,是否有类似但一个班轮?
编辑:
我正在寻找替代的grep解决方案
这是我的形象:
Obj *obj = ... obj has imageHref which is NSString
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:obj.imageHref]];
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
Run Code Online (Sandbox Code Playgroud)
根据图像大小,我无法弄清楚如何将它居中,任何想法?
这是所有内部方法:
- (void)drawRect:(CGRect)rect {
Obj *obj = ... obj has imageHref which is NSString
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:obj.imageHref]];
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
NSLog(@"%f", rect.size.width);
NSLog(@"%f", rect.size.height);
}
Run Code Online (Sandbox Code Playgroud)
其中rect.size.width打印320.000000并rect.size.height打印416.000000
我有一个工作示例,通过qpid消息发送消息到服务器和服务器接收它.这是发送到服务器的简单hello world:
这里是接收请求并发送响应的服务器(当前客户端没有收到响应):
这是我的属性文件:
它们都工作得很好,我可以通过Qpid JMX管理控制台看到qpid队列中的消息.这些示例从https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example下载(有人也可能需要它).
我之前使用spring完成了Jboss消息传递,但是我无法用qpid做同样的事情.使用appsContext中的jboss,我有bean jndiTemplate,conectionFactory,destinationQueue和jmscontainer,如下所示:
<!-- Queue configuration -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.provider.url">jnp://localhost:1099</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="java.naming.security.principal">admin</prop>
<prop key="java.naming.security.credentials">admin</prop>
</props>
</property>
</bean>
<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName" value="ConnectionFactory" />
</bean>
<bean id="queueDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName">
<value>queue/testQueue</value>
</property>
</bean>
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="queueDestination" />
<property name="messageListener" ref="listener" />
</bean>
Run Code Online (Sandbox Code Playgroud)
当然是发件人和听众:
<bean id="sender" class="com.practice.Sender"> …Run Code Online (Sandbox Code Playgroud) 我的jboss在尝试运行我的应用程序时弹出了不合规定的错误(spring mvc).它部署好了,这个例外并没有告诉我什么有用,所以我真的不知道该怎么做.我无法调试,真的无能为力:
13:00:01,262 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 2m:13s:790ms
**Started successfully**
从浏览器运行应用程序时会发生这种情况:
13:00:09,456 ERROR [[appServlet]] Servlet.service() for servlet appServlet threw exception
javax.servlet.ServletException: non-HTTP request or response
at javax.servlet.http.HttpServlet.service(HttpServlet.java:818)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Run Code Online (Sandbox Code Playgroud) 我正在开始一个新项目,这次尝试做正确的事情(所以不止一个问题),我可能需要一些帮助,我不确定我做错了什么:
我想尽可能多地利用spring MVC,如何通过@Transactional处理会话打开/关闭?
如何捕获异常(即非现有记录或数据库失败)(如果有).即我的数据库不接受像这样的重复条目:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry
Run Code Online (Sandbox Code Playgroud)
我怎么能抓住这个?
对于我提出的每个下一个请求,我得到了这个例外:
org.hibernate.AssertionFailure: null id in com.test.spring.ws.service.impl.TestObject entry (don't flush the Session after an exception occurs)
Run Code Online (Sandbox Code Playgroud)
我做错了什么?有人可以建议我的项目有一些改进吗?