Я использую adromda 3.3 для генерации кода и maven 3.0.3 плюс jboss 6 в качестве сервера.Я получаю эту ошибку во время выполнения
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/email].[action]] Servlet.service() for servlet action threw exception: java.lang.ClassNotFoundException: org.andromda.email.ServiceLocator from BaseClassLoader@1f8f190{vfs:///D:/licenta/jboss6/server/default/deploy/
email-1.0-SNAPSHOT.ear/email-web-1.0-SNAPSHOT.war/}
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480) [jboss-classloader.jar:2.2.1.GA]
at java.lang.ClassLoader.loadClass(ClassLoader.java:356) [:1.7.0]
at org.email.web.user.UserAction.<clinit>(UserAction.java:25) [:]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [:1.7.0]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [:1.7.0]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [:1.7.0]
at java.lang.reflect.Constructor.newInstance(Constructor.java:525) [:1.7.0]
at java.lang.Class.newInstance0(Class.java:372) [:1.7.0]
at java.lang.Class.newInstance(Class.java:325) [:1.7.0]
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143) [:1.2.9]
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:292) [:1.2.9]
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:230) [:1.2.9]
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) [:1.2.9]
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) [:1.2.9]
из того, что я понимаю из ошибки, является то, что там локатор службы не определен в классе UserAction.Вот код:
import net.sf.json.JSONObject;
import org.andromda.email.ServiceLocator;
import org.andromda.email.service.user.UserService;
import org.andromda.email.vo.user.UserVO;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserAction {
public static UserService userService = ServiceLocator.instance().getUserService();
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String action = request.getParameter("action");
JSONObject jsonObject = new JSONObject();
try{
if (action.equals("verifyUser")){
request.setAttribute("jsonObject", verifyUser(request));
} else if (action.equals("add")) {
request.setAttribute("jsonObject",addUser(request));
}
}catch (Exception e) {
e.printStackTrace();
jsonObject.put("success", false);
return mapping.getInputForward();
}
return mapping.getInputForward();
}
private JSONObject verifyUser(HttpServletRequest request) {
JSONObject jsonObject = new JSONObject();
UserVO user = new UserVO();
user.setPassword(request.getParameter("username"));
user.setUsername(request.getParameter("password"));
if (userService.verifyUser(user)) {
jsonObject.put("success", true);
} else {
jsonObject.put("success", false);
}
return jsonObject;
}
private JSONObject addUser (HttpServletRequest request) {
JSONObject jsonObject = new JSONObject();
UserVO user = new UserVO();
user.setPassword(request.getParameter("username"));
user.setUsername(request.getParameter("password"));
jsonObject.put("id",userService.addUser(user));
jsonObject.put("success",true);
return jsonObject;
}
}
Я думал, что не ставлю некоторую зависимость в maven, но этот сервисный локатор там по умолчанию.
Так что же мне делатьдля этого бежать?Как я могу импортировать эту библиотеку?
Спасибо, Раду