当我运行我的应用程序时,每次我在logcat中获得以下异常时:
04-14 09:29:53.965: W/dalvikvm(1020): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
04-14 09:29:53.985: E/AndroidRuntime(1020): FATAL EXCEPTION: main
04-14 09:29:53.985: E/AndroidRuntime(1020): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.access$1300(ActivityThread.java:123)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.os.Handler.dispatchMessage(Handler.java:99)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.os.Looper.loop(Looper.java:137)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-14 09:29:53.985: E/AndroidRuntime(1020): at java.lang.reflect.Method.invokeNative(Native Method)
04-14 09:29:53.985: E/AndroidRuntime(1020): at java.lang.reflect.Method.invoke(Method.java:511)
04-14 09:29:53.985: E/AndroidRuntime(1020): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-14 09:29:53.985: …Run Code Online (Sandbox Code Playgroud) 我有一个java.util.Date格式yyyy-mm-dd.我想要它的格式mm-dd-yyyy
下面是我为此转换尝试的示例工具:
// Setting the pattern
SimpleDateFormat sm = new SimpleDateFormat("mm-dd-yyyy");
// myDate is the java.util.Date in yyyy-mm-dd format
// Converting it into String using formatter
String strDate = sm.format(myDate);
//Converting the String back to java.util.Date
Date dt = sm.parse(strDate);
Run Code Online (Sandbox Code Playgroud)
我得到的输出仍然不是格式mm-dd-yyyy.
请告诉我如何格式化java.util.Datefrom yyyy-mm-dd到mm-dd-yyyy
我试图安装Docker CE在RHEL使用这个链接.这是我的RHEL版本:
Red Hat Enterprise Linux Server release 7.3 (Maipo)
Run Code Online (Sandbox Code Playgroud)
当我执行这个:
sudo yum -y install docker-ce
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Error: Package: docker-ce-17.06.0.ce-1.el7.centos.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2.9
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Run Code Online (Sandbox Code Playgroud)
我尝试使用--skip-broken,rpm -Va --nofiles --nodigest但再次得到相同的错误.请让我知道如何解决此问题并在RHEL 7.3中安装Docker CE.
我在调用Web服务中存在的方法时遇到问题.wsdl是使用AXIS创建的.
当我尝试使用我的java代码调用它时,我从服务响应中获取空值.
我收到了在我的控制台中打印的警告消息:
无法找到所需的类(javax.activation.DataHandler和javax.mail.internet.MimeMultipart).附件支持已禁用.
在尝试解决此问题时,我在工作区构建路径中添加了activation.jar和mail.jar,重新启动了服务器.
编辑:
右键单击WSDL ==>生成CLient
然后我得到了一个代理类,使用它我写这个来调用服务方法:
public class CallingWebService1 {
public static void main(String[] args) throws Exception {
WebService1Proxy proxy1 = new WebService1Proxy();
proxy1.setEndpoint("http://localhost:8045/WebService1/services/WebService1");
EmployeeDetails details = proxy1.getDetails();
System.out.println("Employee Id: " + details.getEmpId());
System.out.println("Employee Name: " + details.getEmpName());
System.out.println("Dept Id: " + details.getDeptId());
System.out.println("Dept Name" + details.getDeptName());
System.out.println("Age: " + details.getAge());
}
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在:(
更多信息:
getDetails()方法正在执行数据库操作,从Oracle DB中获取一些记录.为了执行DB操作,使用class12.jar.它与我正在做的方式调用服务方法有什么关系吗?
当我尝试从数据库中删除条目时,使用
session.delete(object)
Run Code Online (Sandbox Code Playgroud)
那我可以以下几点:
1)如果该行存在于DB中,则执行两个SQL查询:选择然后删除
2)如果DB中不存在该行,则仅执行选择查询
但同样,这不是更新的情况.无论是否存在DB行,只会执行更新查询.
请让我知道为什么这种行为的删除操作.这不是一个性能问题,因为两个查询被击中而不是一个?
编辑:
我正在使用hibernate 3.2.5
示例代码:
SessionFactory sessionFactory = new Configuration().configure("student.cfg.xml").buildSessionFactory();
Session session = sessionFactory.openSession();
Student student = new Student();
student.setFirstName("AAA");
student.setLastName("BBB");
student.setCity("CCC");
student.setState("DDD");
student.setCountry("EEE");
student.setId("FFF");
session.delete(student);
session.flush();
session.close();
Run Code Online (Sandbox Code Playgroud)
cfg.xml中
<property name="hibernate.connection.username">system</property>
<property name="hibernate.connection.password">XXX</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521/orcl</property>
<property name="hibernate.jdbc.batch_size">30</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.connection.release_mode">after_transaction</property>
<property name="hibernate.connection.autocommit">true</property>
<property name="hibernate.connection.pool_size">0</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
Run Code Online (Sandbox Code Playgroud)
的hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.infy.model.Student" table="STUDENT">
<id …Run Code Online (Sandbox Code Playgroud) 我试图custom url从我的java程序中调用一个,因此我使用了这样的东西:
URL myURL;
try {
myURL = new URL("CustomURI:");
URLConnection myURLConnection = myURL.openConnection();
myURLConnection.connect();
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我得到以下例外:
java.net.MalformedURLException:未知协议:来自java.net.URL的java.net.URL.(未知来源)中的CustomURI.(来自未知来源)位于com.demo.TestDemo的java.net.URL.(未知来源).主(TestDemo.java:14)
如果我URI从浏览器触发它然后它按预期工作但如果我尝试Java Program从那时调用它我得到上述异常.
编辑:
以下是我尝试的步骤(我肯定错过了一些东西,请告诉我):
第1步:添加自定义URI java.protocol.handler.pkgs
第2步:从URL触发自定义URI
码:
public class CustomURI {
public static void main(String[] args) {
try {
add("CustomURI:");
URL uri = new URL("CustomURI:");
URLConnection uc = uri.openConnection();
uc.connect();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void add( String handlerPackage ){
final String key = …Run Code Online (Sandbox Code Playgroud) 标准API中setResultTransformer方法的用途是什么?有人可以用一个简单的例子来解释这个吗 我读了javadocs,但我无法清楚地理解它们.
问候,
我每次执行程序时都在执行JDBC批量插入(一次插入大约1000行).但是我无法正确处理某些记录引发的异常.
假设,1000条记录中的第100条记录因为数据无效或某些值的大小超出列大小而抛出异常.一旦发生异常,其余的记录就不会被插入,程序就会失败.
我想要的是即使第100条记录抛出异常,其余的插入也应该在我的程序结束之前照常进行.
我无法理解如何实现这一目标.请建议.
编辑:
这是我在我的应用程序中用于批量插入的示例代码.假设结果集有大约1000条记录.
PreparedStatement ps = null;
while(rs.next()){
//Retrieve the value and set it to a Prepared statement
String name = rs.getString("Name");
int age = rs.getInt("Age");
ps.setInt(1, age);
ps.setString(2, name);
//Finally invoke addBatch
ps.addBatch();
}
//Finally call the executeBatch method
ps.executeBatch();
Run Code Online (Sandbox Code Playgroud)
如果第100条记录抛出异常,那么我想仅从第100条第1000条记录触发该进程.是否有某种方式来做到这一点,这样我可以重新开始从中抛出异常的记录过程中起直到再次结束了吗?怎么做到这一点?
我正在尝试使用RSA 7.5和Websphere 7服务器开发IBM JAX_WS Web服务.由于我是初学者,因此我遵循Java类第一种方法,即我首先创建Java类,然后生成WSDL文件.
当我尝试创建wsdl文件时,我得到一个例外:
java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationsException的1个计数Class有两个同名的属性"planId"
我的班级在这里看起来像这样:
public class MemberDetails{
@XMLElement(required=true)
private String planId;
//public getters and setters for the planId;
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会发生这种异常.通过谷歌搜索,我尝试了一些替代方案来解决它,但没有一个为我工作:(
注意:
这是我在整个工作区中使用的唯一注释.我不确定这是否依赖于其他一些注释.但我尝试了一些诸如@XMLElement(name ="Plan",required = true),@ XMLType等,但每次我都得到这个例外.
这个例外是在wsgen期间发生的.(java.lang.reflect.InvocationTargetException)
编辑
基本上,当我们从java服务方法创建一个wsdl并在SOAP UI中打开该WSDL时,我们就会<!--Optional-->在每个元素的顶部.我想删除这个选项标记<!--Optional-->标记,因此我尝试使用@XMLElement(required = true)方法,这样当我在SOAP UI <!--Optional-->中打开WSDL时,不会出现强制性元素.
根据我的概念,@ XMLElement(required = true)将minOccurs设置为1,即大于零,因此当我在SOAP UI中打开它时,可选的注释将从WSDL中删除.但不幸的是它没有用,因此我的概念不正确.生成WSDL之后,我可以看到minOccurs仍为0.
请解释在SOAP UI中打开WSDL时如何删除可选标记.
问候,
queryForMap如果查询返回多行,我可以使用吗?
对于单行,以下代码工作正常.
public Map<String, Object> retrieveMultipleRowsColumns(String deptName){
return jdbcTemplate.queryForMap("SELECT DEPT_ID,DEPT_NAME FROM DEPT WHERE DEPT_NAME = ?", deptName);
}
Run Code Online (Sandbox Code Playgroud)
如何修改多行?