Java 服务器返回了URL的HTTP响应代码:403

Java 服务器返回了URL的HTTP响应代码:403,java,jakarta-ee,soap,embedded-jetty,Java,Jakarta Ee,Soap,Embedded Jetty,我通过一个main方法调用SAOP Webservice,它运行良好。。但当我通过名为method的浏览器调用同一个方法时,它会给我以下错误 Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: ------------工作代码如下--------------------------- public class WSConnectionUtil { private stat

我通过一个main方法调用SAOP Webservice,它运行良好。。但当我通过名为method的浏览器调用同一个方法时,它会给我以下错误

Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: 
------------工作代码如下---------------------------

public class WSConnectionUtil {


    private static final WSConnectionUtil INSTANCE = new WSConnectionUtil();

    public SynchronizationServiceWSImpl getSyncServicePort(){
        SynchronizationServiceWSImplService service = new SynchronizationServiceWSImplService();

        SynchronizationServiceWSImpl servicePort = service.getSynchronizationServiceWSImplPort();

        ((BindingProvider) servicePort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,getInstance().getSyncUrl());

        return servicePort;
    }

    public static WSConnectionUtil getInstance() {
        return INSTANCE;
    }

    private String getSyncUrl(){    
        String url = "http://10.2.241.33/synchronize?wsdl";
        return url;
    }
}


public void syncAll(){

System.out.println("===========syncAll======"+new Date());
SynchronizationRequest request = new SynchronizationRequest();
WSConnectionUtil wsCon = WSConnectionUtil.getInstance();

request.setPosCode("TNCB");
SynchronizationResponse response = wsCon.getSyncServicePort().synchronize(request);

List<String> types = response.getUpdateTypes();
System.out.println("===========types======"+types.size());
}
/**
     * 
     * service for login execution
     *      - user : Contains user id & password 
     * @param user
     * @return
     * 
     */
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public @ResponseBody ModelMap login(@ModelAttribute ("User")User user ){
        String username = user.getName();
        String password = user.getPassword();
        ModelMap model = new ModelMap();

        Boolean status = loginService.login(username, password);

        if(status == true){
            model.put("status", true);
        }

        return model;
    }

    public boolean login(String loginUser,String password){

            Steward steward = new Steward();
            steward.setStewardId(Integer.parseInt(loginUser));
            //List<Steward> stewardsList = stewardDao.getStewardsByCriteria(steward);
            //if(stewardsList!=null && stewardsList.size()>0){
            //  steward = stewardsList.get(0);
            //}else{
            //  LOG.error("Cannot Find a Steward for Login : "+loginUser);
            //  return false;
            //}
            TouchPosApplication.getApplication().setUser("SYSTEM");
            TouchPosApplication.getApplication().setOutletCode("A");
            TouchPosApplication.getApplication().setLoginUserId(loginUser);

    //      final SynchronizationServiceImpl impl = new SynchronizationServiceImpl();   
    //      impl.syncAll();

            new Thread(new Runnable() {

                private static final long serialVersionUID = -4094418102152819603L;

                @Override
                public void run() {
                    while (true) {
                        long i =0;
                        try {
                            i = 1000 * 60 * 1;
                            Thread.sleep(i);
                        } catch (InterruptedException e) {
                            System.out.println("===InterruptedException==========="+e);
                        }                   
                        SyncUtil.synchronizeAutomatic(true);

                    }
                }
            }).start();

            LOG.info("::::: Successfuly Logged In :"+loginUser);

            return true;
        }
公共类WSConnectionUtil{
私有静态最终WSConnectionUtil实例=新的WSConnectionUtil();
公共同步服务wsimpl getSyncServicePort(){
SynchronizationServiceWSImplService=新的SynchronizationServiceWSImplService();
SynchronizationServiceWSImpl servicePort=service.getSynchronizationServiceWSImplPort();
((BindingProvider)servicePort.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_属性,getInstance().getSyncUrl());
返回服务端口;
}
公共静态WSConnectionUtil getInstance(){
返回实例;
}
私有字符串getSyncUrl(){
字符串url=”http://10.2.241.33/synchronize?wsdl";
返回url;
}
}
公共void syncAll(){
System.out.println(“==================================”+新日期());
SynchronizationRequest=新的SynchronizationRequest();
WSConnectionUtil wsCon=WSConnectionUtil.getInstance();
请求。设置POSCODE(“TNCB”);
SynchronizationResponse=wsCon.getSyncServicePort().Synchronization(请求);
列表类型=response.getUpdateType();
System.out.println(“============================”+types.size());
}
----------错误代码---------------------

public class WSConnectionUtil {


    private static final WSConnectionUtil INSTANCE = new WSConnectionUtil();

    public SynchronizationServiceWSImpl getSyncServicePort(){
        SynchronizationServiceWSImplService service = new SynchronizationServiceWSImplService();

        SynchronizationServiceWSImpl servicePort = service.getSynchronizationServiceWSImplPort();

        ((BindingProvider) servicePort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,getInstance().getSyncUrl());

        return servicePort;
    }

    public static WSConnectionUtil getInstance() {
        return INSTANCE;
    }

    private String getSyncUrl(){    
        String url = "http://10.2.241.33/synchronize?wsdl";
        return url;
    }
}


public void syncAll(){

System.out.println("===========syncAll======"+new Date());
SynchronizationRequest request = new SynchronizationRequest();
WSConnectionUtil wsCon = WSConnectionUtil.getInstance();

request.setPosCode("TNCB");
SynchronizationResponse response = wsCon.getSyncServicePort().synchronize(request);

List<String> types = response.getUpdateTypes();
System.out.println("===========types======"+types.size());
}
/**
     * 
     * service for login execution
     *      - user : Contains user id & password 
     * @param user
     * @return
     * 
     */
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public @ResponseBody ModelMap login(@ModelAttribute ("User")User user ){
        String username = user.getName();
        String password = user.getPassword();
        ModelMap model = new ModelMap();

        Boolean status = loginService.login(username, password);

        if(status == true){
            model.put("status", true);
        }

        return model;
    }

    public boolean login(String loginUser,String password){

            Steward steward = new Steward();
            steward.setStewardId(Integer.parseInt(loginUser));
            //List<Steward> stewardsList = stewardDao.getStewardsByCriteria(steward);
            //if(stewardsList!=null && stewardsList.size()>0){
            //  steward = stewardsList.get(0);
            //}else{
            //  LOG.error("Cannot Find a Steward for Login : "+loginUser);
            //  return false;
            //}
            TouchPosApplication.getApplication().setUser("SYSTEM");
            TouchPosApplication.getApplication().setOutletCode("A");
            TouchPosApplication.getApplication().setLoginUserId(loginUser);

    //      final SynchronizationServiceImpl impl = new SynchronizationServiceImpl();   
    //      impl.syncAll();

            new Thread(new Runnable() {

                private static final long serialVersionUID = -4094418102152819603L;

                @Override
                public void run() {
                    while (true) {
                        long i =0;
                        try {
                            i = 1000 * 60 * 1;
                            Thread.sleep(i);
                        } catch (InterruptedException e) {
                            System.out.println("===InterruptedException==========="+e);
                        }                   
                        SyncUtil.synchronizeAutomatic(true);

                    }
                }
            }).start();

            LOG.info("::::: Successfuly Logged In :"+loginUser);

            return true;
        }
/**
* 
*用于登录执行的服务
*-用户:包含用户id和密码
*@param用户
*@返回
* 
*/
@RequestMapping(value=“/login”,method=RequestMethod.POST)
public@ResponseBody ModelMap登录(@modeldattribute(“用户”)用户){
字符串username=user.getName();
字符串password=user.getPassword();
ModelMap model=newmodelmap();
布尔状态=loginService.login(用户名、密码);
如果(状态==真){
模型。放置(“状态”,真);
}
收益模型;
}
公共布尔登录(字符串登录用户、字符串密码){
管家管家=新管家();
setStewardId(Integer.parseInt(logiuser));
//List stewardsList=stewardDao.getStewardsByCriteria(steward);
//if(StewardList!=null&&StewardList.size()>0){
//steward=StewardList.get(0);
//}否则{
//LOG.error(“找不到管理员登录:“+loginUser”);
//返回false;
//}
TouchPosApplication.getApplication().setUser(“系统”);
TouchPosApplication.getApplication().setOutletCode(“A”);
TouchPosApplication.getApplication().setLoginUserId(loginUser);
//最终同步ServiceImpl impl=新同步ServiceImpl();
//impl.syncAll();
新线程(newrunnable()){
私有静态最终长serialVersionUID=-4094418102152819603L;
@凌驾
公开募捐{
while(true){
长i=0;
试一试{
i=1000*60*1;
睡眠(i);
}捕捉(中断异常e){
System.out.println(“==中断异常====”+e);
}                   
SyncUtil.synchronizeAutomatic(真);
}
}
}).start();
LOG.info(“::成功登录:“+loginUser”);
返回true;
}

如何使用浏览器调用SOAP方法?您是否在浏览器中使用某些REST插件?是的,我使用REST服务@RequestMapping(value=“/login”,method=RequestMethod.POST)public@ResponseBody ModelMap login(@modeldAttribute(“User”)User User User){String username=User.getName();String password=User.getPassword();ModelMap model=new ModelMap();Boolean status=loginService.login(用户名、密码);if(status==true){model.put(“status”,true);}return model;}由于您的方法正在等待POST请求,因此在调用REST服务时必须使用POST方法。'用户参数必须在帖子正文中传递,而不能作为查询参数传递。我使用restclientfirefox插件就是为了实现这些目的,在这里,你可以根据自己的需要灵活地生成请求