Using @Autowired HttpServletRequest request object in a Static Method











up vote
0
down vote

favorite












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


























    up vote
    0
    down vote

    favorite












    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
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      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 at 5:22









      Ashfaque Rifaye

      3471412




      3471412
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          1
          down vote













          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',
            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








            up vote
            1
            down vote













            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



























              up vote
              1
              down vote













              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

























                up vote
                1
                down vote










                up vote
                1
                down vote









                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 at 5:57

























                answered Nov 22 at 5:31









                user7294900

                19.8k93257




                19.8k93257






























                    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.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • 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

                    Berounka

                    Fiat S.p.A.

                    Type 'String' is not a subtype of type 'int' of 'index'