我正在尝试使用 JavaMailSender 在我的 Spring MVC Web 应用程序和 Tomcat 7 中发送注册确认电子邮件,但它始终返回 NullPointerException。谁能帮我找出为什么我得到空指针?以下是我的配置设置:
网页.xml
<!-- jndi mail session -->
<resource-ref>
<description>
Resource reference to a factory for javax.mail.Session
instances that may be used for sending electronic mail
messages, preconfigured to connect to the appropriate
SMTP server.
</description>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
应用程序-servlet.xml
<!-- Mail Sender bean definition -->
<bean id="smtpSession" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/mail/session"/>
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="session" ref="smtpSession"/>
<!--
<property name="host" value="smtp.gmail.com" />
<property name="port" value="465" />
<property name="username" …Run Code Online (Sandbox Code Playgroud) 我从其他片段开始一个片段时得到NullPointerException.我试图在动态启动片段后调用第二个片段中的方法.
这是我的logcat:
05-20 09:58:31.907: E/AndroidRuntime(2585): FATAL EXCEPTION: main
05-20 09:58:31.907: E/AndroidRuntime(2585): java.lang.NullPointerException
05-20 09:58:31.907: E/AndroidRuntime(2585): at com.exercise.FragmentTest.MyFragment3.setImage(MyFragment3.java:22)
05-20 09:58:31.907: E/AndroidRuntime(2585): at com.exercise.FragmentTest.FragmentTestActivity$1.onClick(FragmentTestActivity.java:48)
05-20 09:58:31.907: E/AndroidRuntime(2585): at android.view.View.performClick(View.java:4204)
05-20 09:58:31.907: E/AndroidRuntime(2585): at android.view.View$PerformClick.run(View.java:17355)
05-20 09:58:31.907: E/AndroidRuntime(2585): at android.os.Handler.handleCallback(Handler.java:725)
05-20 09:58:31.907: E/AndroidRuntime(2585): at android.os.Handler.dispatchMessage(Handler.java:92)
05-20 09:58:31.907: E/AndroidRuntime(2585): at android.os.Looper.loop(Looper.java:137)
05-20 09:58:31.907: E/AndroidRuntime(2585): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-20 09:58:31.907: E/AndroidRuntime(2585): at java.lang.reflect.Method.invokeNative(Native Method)
05-20 09:58:31.907: E/AndroidRuntime(2585): at java.lang.reflect.Method.invoke(Method.java:511)
05-20 09:58:31.907: E/AndroidRuntime(2585): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-20 09:58:31.907: E/AndroidRuntime(2585): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-20 09:58:31.907: E/AndroidRuntime(2585): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
和我的主要活动代码: …
由于某种原因,我的String部分由PrintWriter编写.结果我在我的文件中得到了部分文本.这是方法:
public void new_file_with_text(String text, String fname) {
File f = null;
try {
f = new File(fname);
f.createNewFile();
System.out.println(text);
PrintWriter out = new PrintWriter(f, "UTF-8");
out.print(text);
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
在我将文本打印到控制台的地方,我可以看到数据全部存在,没有任何遗失,但是当PrintWriter完成其工作时,显然部分文本会丢失...我很无能为力......
Uri selectedUri = Uri.fromFile(selected.getAbsoluteFile());
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(selectedUri.toString());
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(selectedUri, mimeType);
Intent chooser = Intent.createChooser(intent, "Open File...");
startActivity(chooser);
Run Code Online (Sandbox Code Playgroud)
此代码始终有效,这意味着即使没有找到任何活动来处理意图,选择器对话框仍然会出现这样的情况.现在,如果没有找到填充选择器对话框的活动,此代码将抛出NullPointerException(版本4.3).有没有其他人经历过这个或知道我可能做错了什么?
logcat的:
02-25 17:03:24.260: E/AndroidRuntime(13502): FATAL EXCEPTION: main
02-25 17:03:24.260: E/AndroidRuntime(13502): java.lang.RuntimeException: Unable to start activity ComponentInfo{android/com.android.internal.app.ChooserActivity}: java.lang.NullPointerException
02-25 17:03:24.260: E/AndroidRuntime(13502): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2517)
02-25 17:03:24.260: E/AndroidRuntime(13502): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2574)
02-25 17:03:24.260: E/AndroidRuntime(13502): at android.app.ActivityThread.access$600(ActivityThread.java:162)
02-25 17:03:24.260: E/AndroidRuntime(13502): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1413)
02-25 17:03:24.260: E/AndroidRuntime(13502): at android.os.Handler.dispatchMessage(Handler.java:99)
02-25 17:03:24.260: E/AndroidRuntime(13502): at android.os.Looper.loop(Looper.java:158)
02-25 17:03:24.260: E/AndroidRuntime(13502): at android.app.ActivityThread.main(ActivityThread.java:5789)
02-25 …Run Code Online (Sandbox Code Playgroud) 在Java中,我看到了很多代码,如下所示.我想知道的是,仅显示错误消息是否足够?
我是Java新手.我想学的是如何有效地处理错误,并了解错误处理的最佳实践.一般来说,我应该怎么做catch块?
} catch (SomeException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
} catch (SomeException e) {
e.getMessage();
}
Run Code Online (Sandbox Code Playgroud)
} catch (IOException E) {
System.out.println("Error occured. Please try again.");
}
Run Code Online (Sandbox Code Playgroud) 大家好我想在我的谷歌地图上实现叠加.但是我在运行时收到致命错误,似乎是某种NullPointerException.当我删除"overlayList = mapView.getOverlays();"时,应用程序正常运行 和"overlayList.add(t);" 代码行.任何帮助是极大的赞赏!
主要活动:
public class CSActivity extends MapActivity implements LocationListener {
MapController mapController;
MapView mapView;
LocationManager locationManager;
MyLocationOverlay myLocationOverlay;
MyLocationOverlay compass;
private Button click_but;
private Button exit_but;
long start;
long stop;
int x,y;
GeoPoint touchedPoint;
Drawable d;
List<Overlay> overlayList;
String towers;
int lat;
int lng;
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.main); // bind the layout to the activity
click_but = new Button(this);
click_but = (Button)findViewById(R.id.clickBtn);
exit_but = new Button(this);
exit_but = (Button)findViewById(R.id.exitBtn);
d = getResources().getDrawable(R.drawable.markerblue);
Touchy …Run Code Online (Sandbox Code Playgroud) android google-maps nullpointerexception fatal-error android-mapview
//System.out.println("hii");'\uxxx'
Run Code Online (Sandbox Code Playgroud)
println语句已注释,但unicode未注释。为什么?
我spring4gwt在我的项目中使用.
我有以下登录服务实现:
@Service("loginService")
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService {
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public UserBean checkUser(String userName, String password) throws Exception {
HttpSession httpSession = getThreadLocalRequest().getSession();
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用loginService.checkUser("test","test")(在托管模式下)时,我得到一个NullPointerException,因为getThreadLocalRequest()返回NULL而不是实际的会话.
我还没有尝试过网络模式.
为什么我会得到一个空会话?它与spring4gwt有关吗?
这是我的课
public class MessageFrameListener{
private MessageFrame mf;
private User us;
private Contact cn;
private Socket s;
private PrintStream ps;
private BufferedReader br;
public MessageFrameListener(MessageFrame m_f, User u_s, Contact c_n){
mf = m_f;
us = u_s;
cn = c_n;
m_f.addButtonListener(new SButtonListener());
}
public void init(){
try {
s = new Socket(InetAddress.getLocalHost(), 8072);
PrintStream ps = new PrintStream(s.getOutputStream());
BufferedReader br = new BufferedReader( new InputStreamReader(s.getInputStream()));
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试在shreyaloclistfragment中创建列表搜索视图.我在下面的行中得到NullPointerException
final SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
Run Code Online (Sandbox Code Playgroud)
我的方法是
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater ) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate( R.menu.menu_search, menu);
System.out.println( "inflating menu");
final SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
showFilteredItems( newText );
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
return true;
}
};
searchView.setOnQueryTextListener(queryTextListener);
return;
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪
FATAL EXCEPTION: main
java.lang.NullPointerException
at com.sears.syw.FragmentShopsTab.onCreateOptionsMenu(FragmentShopsTab.java:52)
at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:55)
at
com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:559 )
at
com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSh erlockNative.java:65)
at
Run Code Online (Sandbox Code Playgroud) 我在运行下面的代码时得到一个NullPointerException.我不知道如何解决这些问题.
堆栈跟踪:
E/AndroidRuntime(1118): FATAL EXCEPTION: main
E/AndroidRuntime(1118): Process: info.androidhive.googlemapsv2, PID: 1118
E/AndroidRuntime(1118): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.googlemapsv2/info.androidhive.googlemapsv2.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
E/AndroidRuntime(1118): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
E/AndroidRuntime(1118): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
E/AndroidRuntime(1118): at android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime(1118): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime(1118): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(1118): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(1118): at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime(1118): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1118): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(1118): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime(1118): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime(1118): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(1118): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
E/AndroidRuntime(1118): …Run Code Online (Sandbox Code Playgroud) android ×5
java ×4
google-maps ×2
spring ×2
eclipse ×1
fatal-error ×1
gwt ×1
jakarta-mail ×1
jndi ×1
listview ×1
printwriter ×1
session ×1
sockets ×1
spring-4-gwt ×1
tomcat ×1