Otrzymałem ten błąd podczas próby uruchomienia następującego kodu, aby uzyskać obiekt javax.mail.Session przy użyciu pliku kontekstowego tomcat .java.lang.ClassCastException: javax.mail.Session nie można przesłać do javax.mail.Session
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (javax.mail.Session) envCtx.lookup("mail/session");
To jest deklaracja zasobu w pliku context.xml.
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"
mail.smtp.host="host"
mail.smtp.user="user"
mail.smtp.password="password"
mail.smtp.auth="false"/>
Rozumiem, może to być spowodowane mi o tej samej biblioteki dla javax.mail.Session w mojej bibliotece serwera aplikacji (Tomcat) i folderu w mojej aplikacji katalogu biblioteki, mam wyeliminować jak najwięcej duplikaty plików bibliotecznych z mojego folderu biblioteki aplikacji (np. mail.jar), który widzę, mam javax.mail.Session jako część biblioteki, teraz jestem w punkcie, w którym wciąż otrzymuję ten błąd i nie jestem pewien, jakie inne biblioteki mogą być źródłem tego problemu, czy jest to inny problem, którego nie znam?
Co ludzie sugerują zrobić, aby znaleźć źródło tego problemu?
Dzięki.
Upewnij się, że uruchomiłeś ponownie tomcat. Jeśli wyjątek jest wciąż rzucany, przegapiłeś miejsce, w którym nadal znajduje się javax.mail.Session. – Henry
Nie znam dokładnego rozwiązania twojego problemu, ale jeszcze jeden powód, dla którego może się zdarzyć (żebyś się zagłębił) - javax.mail.Session jest ładowany przez 2 różne programy ładujące klasy – serejja
Czy używasz Mavena? –