Using @Autowired HttpServletRequest request object in a Static Method












0















I have a requirement - where we use the HttpServletRequest request object to set the UserSession Details in this Object.



The UserSession are required to be fetched at various point in the Spring Application as per need and to access this, I Autowired the HttpServletRequest object. I used in multiple locations and it worked like a charm.



But the problem is, when I tried to use it in a Static contect, this request object throws compilation error "non-static variable . . . cannot be referenced from a static context" .



So, when I tried to make the HttpServletRequest as static, this turns out to be null. I am not sure why this happens and require a suitable solution to use in the static methods.



POJO Class



 public class POJOClass{

@Autowired
private HttpServletRequest request;

public static String getData(){

UserObject uObj = UtilService.getUser(request);
//Throws Compilation error for request object.

}


*Here UtilService is the class defined from which the UserSession is fetched.










share|improve this question



























    0















    I have a requirement - where we use the HttpServletRequest request object to set the UserSession Details in this Object.



    The UserSession are required to be fetched at various point in the Spring Application as per need and to access this, I Autowired the HttpServletRequest object. I used in multiple locations and it worked like a charm.



    But the problem is, when I tried to use it in a Static contect, this request object throws compilation error "non-static variable . . . cannot be referenced from a static context" .



    So, when I tried to make the HttpServletRequest as static, this turns out to be null. I am not sure why this happens and require a suitable solution to use in the static methods.



    POJO Class



     public class POJOClass{

    @Autowired
    private HttpServletRequest request;

    public static String getData(){

    UserObject uObj = UtilService.getUser(request);
    //Throws Compilation error for request object.

    }


    *Here UtilService is the class defined from which the UserSession is fetched.










    share|improve this question

























      0












      0








      0








      I have a requirement - where we use the HttpServletRequest request object to set the UserSession Details in this Object.



      The UserSession are required to be fetched at various point in the Spring Application as per need and to access this, I Autowired the HttpServletRequest object. I used in multiple locations and it worked like a charm.



      But the problem is, when I tried to use it in a Static contect, this request object throws compilation error "non-static variable . . . cannot be referenced from a static context" .



      So, when I tried to make the HttpServletRequest as static, this turns out to be null. I am not sure why this happens and require a suitable solution to use in the static methods.



      POJO Class



       public class POJOClass{

      @Autowired
      private HttpServletRequest request;

      public static String getData(){

      UserObject uObj = UtilService.getUser(request);
      //Throws Compilation error for request object.

      }


      *Here UtilService is the class defined from which the UserSession is fetched.










      share|improve this question














      I have a requirement - where we use the HttpServletRequest request object to set the UserSession Details in this Object.



      The UserSession are required to be fetched at various point in the Spring Application as per need and to access this, I Autowired the HttpServletRequest object. I used in multiple locations and it worked like a charm.



      But the problem is, when I tried to use it in a Static contect, this request object throws compilation error "non-static variable . . . cannot be referenced from a static context" .



      So, when I tried to make the HttpServletRequest as static, this turns out to be null. I am not sure why this happens and require a suitable solution to use in the static methods.



      POJO Class



       public class POJOClass{

      @Autowired
      private HttpServletRequest request;

      public static String getData(){

      UserObject uObj = UtilService.getUser(request);
      //Throws Compilation error for request object.

      }


      *Here UtilService is the class defined from which the UserSession is fetched.







      java spring






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 5:22









      Ashfaque RifayeAshfaque Rifaye

      3691413




      3691413
























          1 Answer
          1






          active

          oldest

          votes


















          1














          You should manage your utility class in Spring, follow How to Autowire bean in a static class by adding static Initializer which will add using Configuration your class:




           @Component
          public class
          StaticContextInitializer {

          @Autowired
          private MyConfig myConfig;

          @Autowired
          private ApplicationContext context;

          @PostConstruct
          public void init() {
          StaticUtils.setMyConfig(myConfig);
          }
          }






          share|improve this answer

























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424355%2fusing-autowired-httpservletrequest-request-object-in-a-static-method%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            You should manage your utility class in Spring, follow How to Autowire bean in a static class by adding static Initializer which will add using Configuration your class:




             @Component
            public class
            StaticContextInitializer {

            @Autowired
            private MyConfig myConfig;

            @Autowired
            private ApplicationContext context;

            @PostConstruct
            public void init() {
            StaticUtils.setMyConfig(myConfig);
            }
            }






            share|improve this answer






























              1














              You should manage your utility class in Spring, follow How to Autowire bean in a static class by adding static Initializer which will add using Configuration your class:




               @Component
              public class
              StaticContextInitializer {

              @Autowired
              private MyConfig myConfig;

              @Autowired
              private ApplicationContext context;

              @PostConstruct
              public void init() {
              StaticUtils.setMyConfig(myConfig);
              }
              }






              share|improve this answer




























                1












                1








                1







                You should manage your utility class in Spring, follow How to Autowire bean in a static class by adding static Initializer which will add using Configuration your class:




                 @Component
                public class
                StaticContextInitializer {

                @Autowired
                private MyConfig myConfig;

                @Autowired
                private ApplicationContext context;

                @PostConstruct
                public void init() {
                StaticUtils.setMyConfig(myConfig);
                }
                }






                share|improve this answer















                You should manage your utility class in Spring, follow How to Autowire bean in a static class by adding static Initializer which will add using Configuration your class:




                 @Component
                public class
                StaticContextInitializer {

                @Autowired
                private MyConfig myConfig;

                @Autowired
                private ApplicationContext context;

                @PostConstruct
                public void init() {
                StaticUtils.setMyConfig(myConfig);
                }
                }







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 22 '18 at 5:57

























                answered Nov 22 '18 at 5:31









                user7294900user7294900

                22.6k113360




                22.6k113360
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424355%2fusing-autowired-httpservletrequest-request-object-in-a-static-method%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    android studio warns about leanback feature tag usage required on manifest while using Unity exported app?

                    SQL update select statement

                    'app-layout' is not a known element: how to share Component with different Modules