用EJB开发了一个简单的数据增删改查功能,但是将EJB布署为发布为WebService时,总是报:
Unable to deploy EJB: UserServiceImpl from EJB_01.jar:java.lang.ClassNotFoundException: com.dys.service.impl.UserServiceImpl_y4o4w0_WSOImpl异常!
这是怎么加事?

解决方案 »

  1.   

    这个类没找到,UserServiceImpl_y4o4w0_WSOImpl,
    你发布的打包时有没有打进去?
      

  2.   

    ClassNotFoundException
    说的很明白嘛,class文件未找到。
    导jar包了么?
      

  3.   

    package com.dys.service.impl;import java.util.List;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    import javax.jws.WebService;
    import javax.naming.InitialContext;
    import com.dys.dao.UserDao;
    import com.dys.model.User;
    import com.dys.service.UserService;@WebService(name="user",serviceName="userService",portName="userServicePort",targetNamespace="http://www.dingyingsi.com")
    @Stateless(mappedName = "userService")
    @Remote(value={UserService.class})
    public class UserServiceImpl implements UserService {
    private UserDao userDao; public UserServiceImpl() {
    try {
    InitialContext initialContext = new InitialContext();
    userDao = (UserDao) initialContext.lookup("userDao#com.dys.dao.UserDao");
    } catch (Exception e) {
    e.printStackTrace();
    }
    } @Override
    public boolean addUser(User user) {
    try {
    userDao.persistEntity(user);
    return true;
    } catch (Exception e) {
    return false;
    }
    } @Override
    public boolean deleteUser(User user) {
    try{
    userDao.removeEntity(user);
    return true;
    }catch(Exception e){
    return false;
    }
    } @Override
    public boolean deleteAllUser(String ids) {
    try{
    userDao.removeAllEntity(ids);
    return true;
    }catch(Exception e){
    return false;
    }
    } @Override
    public boolean modifyUser(User user) {
    try{
    userDao.updateEntity(user);
    return true;
    }catch(Exception e){
    return false;
    }
    } @Override
    public User getUser(User user) {
    return userDao.getEntity(user);
    } @Override
    public List<User> getAllUser() {
    return userDao.getAllEntity();
    }

    }
      

  4.   

    package com.dys.service.impl;import java.util.List;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    import javax.jws.WebService;
    import javax.naming.InitialContext;
    import com.dys.dao.UserDao;
    import com.dys.model.User;
    import com.dys.service.UserService;@WebService(name="user",serviceName="userService",portName="userServicePort",targetNamespace="http://www.dingyingsi.com")
    @Stateless(mappedName = "userService")
    @Remote(value={UserService.class})
    public class UserServiceImpl implements UserService {
    private UserDao userDao; public UserServiceImpl() {
    try {
    InitialContext initialContext = new InitialContext();
    userDao = (UserDao) initialContext.lookup("userDao#com.dys.dao.UserDao");
    } catch (Exception e) {
    e.printStackTrace();
    }
    } @Override
    public boolean addUser(User user) {
    try {
    userDao.persistEntity(user);
    return true;
    } catch (Exception e) {
    return false;
    }
    } @Override
    public boolean deleteUser(User user) {
    try{
    userDao.removeEntity(user);
    return true;
    }catch(Exception e){
    return false;
    }
    } @Override
    public boolean deleteAllUser(String ids) {
    try{
    userDao.removeAllEntity(ids);
    return true;
    }catch(Exception e){
    return false;
    }
    } @Override
    public boolean modifyUser(User user) {
    try{
    userDao.updateEntity(user);
    return true;
    }catch(Exception e){
    return false;
    }
    } @Override
    public User getUser(User user) {
    return userDao.getEntity(user);
    } @Override
    public List<User> getAllUser() {
    return userDao.getAllEntity();
    }

    }
      

  5.   

    上面是代码,接口没写。DAO层也没写。
    当发布到WebLogic上时,会报最上面的错误.
    我解压发布到WebLogic的JAR包时,发现里面我的类都有,但就是报错,WSDL也不能访问。
      

  6.   

    打jar包后再加载要重新引用jar包的