Triển khai ứng dụng Spring MVC trên Oracle WebLogic Server
1. Mục tiêu của tài liệu
Trong tài liệu này tôi sẽ hướng dẫn bạn triển khai một ứng dụng Spring MVC trên Oracle WebLogic Server. Tài liệu được viết dựa trên:
Spring MVC 4.x
Oracle WebLogic Server 12c (12.2.1.1.0).
Đảm bảo rằng bạn đã cài đặt WebLogic Server, nếu chưa cài bạn có thể xem hướng dẫn tại:
Trong tài liệu này tôi sẽ đóng gói một ứng dụng Spring MVC, được viết trên Eclipse và triển khai nó trên WebLogic Server.
Chú ý rằng nếu bạn triển khai Spring MVC lên các server khác như Tomcat, Glassfish bạn không cần phải thay đổi gì trên Source code của bạn. Tuy nhiên nếu triển khai trên WebLogic bạn cần thêm một số file cấu hình vào source code trước khi đóng gói.
Tôi sẽ triển khai ứng dụng "Hello World Spring MVC" lên WebLogic. Ứng dụng này bạn có thể xem tại:
Hoặc download mã nguồn (Source Code):
2. Thêm các cấu hình vào Project
Đây là hình ảnh của Project sau khi hoàn thành:
Thêm weblogic.xml vào WEB-INF. Trong file weblogic.xml bạn cần phải cấu hình contextPath (context-root) cho ứng dụng. Ở đây tôi đặt là /springmvc. Bạn có thể đặt là / nếu muốn sử dụng contextPath rỗng.
/WEB-INF/weblogic.xml
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app>
<context-root>/springmvc</context-root>
<container-descriptor>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>
</weblogic-web-app>
3. Đóng gói ứng dụng
Maven Clean:
Maven Install:
File war đã được tạo ra trong thư mục 'target' của project.
4. Triển khai trên Weblogic
Chú ý: Nếu bạn gặp lỗi tại một trong các bước triển khai, hãy xem phụ lục ở phía cuối tài liệu.
Ứng dụng của bạn đã được triển khai nên WebLogic, và nó đang có trạng thái "prepared" (Đã được chuẩn bị). Bạn cần phải làm thêm một bước nữa là kích hoạt nó.
Mở khóa lại để thay đổi:
Start ứng dụng:
Ứng dụng của bạn đã được kích hoạt thành công.
Test ứng dụng:
5. Gỡ bỏ triển khai
Trường hợp bạn muốn triển khai lại, hoặc gỡ bỏ triển khai (undeloy) trước tiên bạn cần phải stop ứng dụng.
6. Một số lỗi khi triển khai
Nếu trong khi triển khai trên WebLogic bạn nhận được lỗi như dưới đây:
java.io.FileNotFoundException:
Could not open ServletContext resource [/WEB-INF/SpringDispatcher-servlet.xml]
Nguyên nhân lỗi là project Spring MVC của bạn sử dụng Annotation để cấu hình (Không sử dụng XML), nhưng ứng dụng vẫn đọc cấu hình từ file XML (SpringDispatcher-servlet.xml), file này không tồn tại trên Project của bạn.
Bạn cần cấu hình trên SpringWebAppInitializer để đảm bảo chắc chắn ứng dụng sẽ không tìm đọc các file XML nói trên.
Bạn cần cấu hình trên SpringWebAppInitializer để đảm bảo chắc chắn ứng dụng sẽ không tìm đọc các file XML nói trên.
// Add code:
dispatcher.setInitParameter("contextClass", appContext.getClass().getName());
servletContext.addListener(new ContextLoaderListener(appContext));
Xem code đầy đủ:
SpringWebAppInitializer.java
package org.o7planning.hellospringmvc.config;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.DispatcherServlet;
public class SpringWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
appContext.register(ApplicationContextConfig.class);
// Dispatcher Servlet
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher",
new DispatcherServlet(appContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
// IMPORTANT!!
dispatcher.setInitParameter("contextClass", appContext.getClass().getName());
// IMPORTANT!!
servletContext.addListener(new ContextLoaderListener(appContext));
// UTF8 Charactor Filter.
FilterRegistration.Dynamic fr = servletContext.addFilter("encodingFilter", CharacterEncodingFilter.class);
fr.setInitParameter("encoding", "UTF-8");
fr.setInitParameter("forceEncoding", "true");
fr.addMappingForUrlPatterns(null, true, "/*");
}
// .........
}
Các hướng dẫn Java Application Servers
- Cài đặt Tomcat Server cho Eclipse
- Cài đặt Tomcat Server
- Cài đặt Glassfish Web Server trên Windows
- Cài đặt Oracle WebLogic Server
- Làm sao để tạo Windows Service cho Oracle WebLogic Server?
- Triển khai ứng dụng Spring Boot trên Tomcat Server
- Triển khai ứng dụng Spring Boot trên Oracle WebLogic Server
- Triển khai ứng dụng Spring MVC trên Oracle WebLogic Server
- Cài đặt chứng chỉ SSL cho Tomcat Server
- Cài đặt chứng chỉ SSL miễn phí Let's Encrypt cho Tomcat Server trên Ubuntu
Show More
Các hướng dẫn Spring MVC
- Hướng dẫn lập trình Spring cho người mới bắt đầu
- Cài đặt Spring Tool Suite cho Eclipse
- Hướng dẫn lập trình Spring MVC cho người mới bắt đầu - Hello Spring 4 MVC
- Cấu hình các nguồn dữ liệu tĩnh trong Spring MVC
- Hướng dẫn sử dụng Spring MVC Interceptor
- Tạo ứng dụng web đa ngôn ngữ với Spring MVC
- Hướng dẫn Upload File với Spring MVC
- Ứng dụng Java Web login đơn giản sử dụng Spring MVC, Spring Security và Spring JDBC
- Hướng dẫn sử dụng Spring MVC Security với Hibernate
- Hướng dẫn sử dụng Spring MVC Security và Spring JDBC (XML Config)
- Đăng nhập bằng mạng xã hội trong Spring MVC với Spring Social Security
- Hướng dẫn sử dụng Spring MVC và Velocity
- Hướng dẫn sử dụng Spring MVC với FreeMarker
- Sử dụng Template trong Spring MVC với Apache Tiles
- Hướng dẫn sử dụng Spring MVC và Spring JDBC Transaction
- Sử dụng nhiều DataSource trong Spring MVC
- Hướng dẫn sử dụng Spring MVC, Hibernate và Spring Transaction Manager
- Hướng dẫn sử dụng Spring MVC Form và Hibernate
- Chạy các nhiệm vụ nền theo lịch trình trong Spring
- Tạo một ứng dụng Java Web bán hàng sử dụng Spring MVC và Hibernate
- Ví dụ CRUD đơn giản với Spring MVC RESTful Web Service
- Triển khai ứng dụng Spring MVC trên Oracle WebLogic Server
Show More