Injecting JBoss EJB3 beans into Tomcat6
Injecting EJB's into a managed bean (a bean spawned by appserver, of a JSF managed bean) inside an application server is simple:
However in tomcat it gets a little messy. Tomcat doesn't document how to inject them. It assumes something annotated with @EJB is in the context somewhere and tries to look it up.
It has documented how to lookup ejb's by defining entries in your context.xml or server.xml. But there isn't anything documented for defining EJB's. Looking at the soure it has support for <Ejb/> references but no real clue on how to configure it. So after stepping through the code I came up with the following soloution:
My environment is JBoss 5 running remotely (on localhost). A seperate instance of Tomcat 6. In it I have defined a session bean:
I find that putting it in META-INF/context.xml is the easiest, as it gets reloaded nicely in Eclipse. The name="ejb/myBean" corresponds to the name attribute in the <Ejb/> below. In the URL is the appserver name, port, then the mapped name (it could be myProject/ejb/bean or whatever you feel like) - as long as it matched the mappedName on the EJB.
public class AppManagedBean { @EJB(mappedName="ejb/myBean") private MyBeanRemote session;The container looks up the mapped bean and injects it. Easy.
However in tomcat it gets a little messy. Tomcat doesn't document how to inject them. It assumes something annotated with @EJB is in the context somewhere and tries to look it up.
It has documented how to lookup ejb's by defining entries in your context.xml or server.xml. But there isn't anything documented for defining EJB's. Looking at the soure it has support for <Ejb/> references but no real clue on how to configure it. So after stepping through the code I came up with the following soloution:
My environment is JBoss 5 running remotely (on localhost). A seperate instance of Tomcat 6. In it I have defined a session bean:
@Stateful(mappedName="userSession") public class UserSessionBean implements UserSessionRemoteThis bean is used by a JSF backing bean (i.e. a managed bean):
public class TomcatManagedBean { @EJB(name="ejb/myBean") private MyBeanRemote session;In order for this bean to bound to the context, you need to configure Tomcat. There are 2 ways: in the server.xml or in the context.xml
I find that putting it in META-INF/context.xml is the easiest, as it gets reloaded nicely in Eclipse. The name="ejb/myBean" corresponds to the name attribute in the <Ejb/> below. In the URL is the appserver name, port, then the mapped name (it could be myProject/ejb/bean or whatever you feel like) - as long as it matched the mappedName on the EJB.
<Context> <!-- Makes Tomcat manage the ejb for you. --> <Ejb name="ejb/myBean" type="Session" factory="org.jnp.interfaces.NamingContextFactory" URL="jnp://localhost:1099/userSession" /> </Context>Update 2010/02/02: Correct the mappedName in AppManagedBean
Hi, I am currently trying to do the same thing like you. I have a Webapp runing on Tomcat 6.0.20 and an EJB 3.0 on JBoss 4.3.
ReplyDeleteBut it is absolutly not workling. I am trying to inject my EJB in Tomcat but it doesn't work.
If you like to help me, and send me your email-adress to gfemajor2[at]gmx.de i can send you my 2 test projects. (I will not post my hole code here, because i think it is to mutch for a comment ;-)). So that you can have a look at it and tell me what am i doing wrong.
Thank you so far
Christian
I just noticed I had a mapped name slightly wrong above which I've corrected - sorry if that caused some confusion.
ReplyDeleteI've also got an alternate way of mapping it (in which I've had to edit the tomcat source). Tomcat - load & bind an external naming context
I'll drop you an email.
Hi Chris,
ReplyDeletethank you for your article, it contains the information I am looking for, but I have a problem left.
As soon as I am accessing the injected EJB I get an NullPointerException, I think it is because I don't import the right libraries.
This are the libraries I import, it would be nice, if you could take a look, if they are complete:
groupId: javax.ejb
artefactId: ejb-api
version: 3.0
and
groupId:javax.persistence
artefactId: persistence-api
version: 1.0
All the best,
Sebastian
I've just added a new post describing how I build my client jars. I'm assuming your using it in a webapp (like tomcat) outside of the app server (e.g. jboss)?
ReplyDeleteIf your inside the appserver you don't need to include the persistence-api or ejb-api.
And for outside the appserver but inside a web server you would have all those jars inside the server's shared directory (e.g. tomcat/lib). Just make the dependencies <scope>provided</scope>
Hi Chris,
ReplyDeletethank you for your help :)
your right the frontend is running in a ServletContainer (Tomcat 6.0.18) and the backend in an ApplicationServer (JBoss 5.1.0.GA).
I changed the libraries accoding to your description (I put the client jars into the lib directory of the Tomcat and I made the dependencies provided), but it won't work.
Now I am thinking, that there might be something missing in my web.xml? It just contains the follwoing part:
<servlet>
<display-name>FacesServlet</display-name>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
Do you know if I need something more?
No, I was wrong it truly worked :) *Thank you very much* :)
ReplyDeleteBut I have one Exception left:
Caused by: java.lang.IllegalArgumentException: Can not set com.backend.service.UserServiceRemote field com.frontend.action.LoginBean.userService to org.jnp.interfaces.NamingContext
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:657)
at org.apache.catalina.util.DefaultAnnotationProcessor.lookupFieldResource(DefaultAnnotationProcessor.java:213)
at org.apache.catalina.util.DefaultAnnotationProcessor.processAnnotations(DefaultAnnotationProcessor.java:142)
at com.sun.faces.vendor.Tomcat6InjectionProvider.inject(Tomcat6InjectionProvider.java:82)
... 38 more
Do you have a clue?
Hi Chris :)
ReplyDeleteI could fix the last problem :) Now it is working! (I fixed it by removing the attribute "mappedName" in the SessionBean) Thanks again.
All the best,
Sebastian
Hi Sebastian,
ReplyDeleteNo worries.
I was going to say that the problem you having was probably related to what it was trying to resolve actually resolved to a directory not the bean.
Looking at my example its slightly wrong:
It should be @EJB(mappedName="ejb/myBean")
That matches the line in context.xml name="ejb/myBean". But removing the mapped name causes it to look up by class interface which is why it works.
-Chris
I just want these notifications to stop for myself.
ReplyDeleteāļāļēāļāļēāļĢ่āļē
āļีāļāļĨัāļ
gclub
āđāļāļĄāļŠ์ pussy888āļุāļāđāļāļ āļŠāļģāļŦāļĢัāļāļุāļāļāļ
ReplyDeleteāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļāļāđāļĨāļ์ āđāļŦāļĨ่āļāļŠāļ°āļŠāļĄāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļŠāļĨ็āļāļ āļŠāļģāļŦāļĢัāļāļุāļāļāļāļี่āļāļāļāļ้āļēāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļāļāđāļĨāļ์ āđāļ้āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāļัāļāđāļิāļāđāļāļัāļāđāļāļĄāļāļēāļĢāļāļัāļ āđāļĨ้āļ§āļ็āļāļģāđāļิāļāļāļēāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļēāđāļ้āļāļĒ่āļēāļāļ่āļēāļĒāđ pussy888 āđāļ§็āļāļี่āļŠāļ°āļŠāļĄāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļāļāđāļĨāļ์āļุāļāđāļāļāļāļĒ่āļēāļāđāļŦ้āļัāļāļุāļāļāļāļี่āļื่āļāļāļāļāđāļāļ้āļēāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ āđāļ§็āļ pussy888āļี่āđāļ็āļāļĢāļ§āļāļĢāļ§āļĄāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ pussy888āļี่āļĄีāļุāļāļ āļēāļ āđāļĨ่āļāđāļĨ้āļ§āđāļ้āđāļิāļāļāļĢิāļ āļāļĢ้āļāļĄāļāļĢิāļāļēāļĢāļัāļāļุāļāļāļāļี่āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļē āļัāļāđāļิāļāđāļāļัāļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāđāļ้āļāļĒ่āļēāļāđāļĄ่āļĒāļēāļāđāļĒ็āļāļāļģāđāļิāļāļāļēāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ pussy888
āļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļēāđāļ้āđāļĨāļĒāđāļี๋āļĒāļ§āļี้ pussy888
āļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļē āđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāļู้āđāļŦ้āļāļĢิāļāļēāļĢāđāļāļĄāļāļēāļĢāļāļัāļāļี่āđāļŦāļĄāļēāļ°āļŠāļĄāļี่āļŠุāļ āđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļี่āļĄีāļุāļāļ āļēāļ pussy888 āļĨืāļāļื่āļāļāļĒู่āđāļĨ้āļ§āđāļāđāļĢื่āļāļāđāļี่āļĒāļ§āļัāļāļāļēāļĢāđāļŦ้āļāļĢิāļāļēāļĢāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ āļึ้āļāļื่āļāļĨืāļāļāļēāļāļĒู่āđāļĨ้āļ§āđāļāđāļĢื่āļāļāđāļี่āļĒāļ§āļัāļāļāļēāļĢāđāļŦ้āļāļĢิāļāļēāļĢāđāļāļĄāļāļēāļĢāļāļัāļāļี่āļĄีāļุāļāļ āļēāļ āļĄีāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļุāļāļ้āļāđāļāļ āļี่āļāļĢ้āļāļĄāļāļ°āļāļĢิāļāļēāļĢāđāļŦ้āļัāļāļุāļāļāļāļี่āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ
āļŠāļĢāļ§āļāļŠāļ§āļĢāļĢāļ์āļāļāļāļู้āļี่āļāļāļāđāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ pussy888 āļāļ§āļāđāļĢāļēāđāļ็āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ pussy888āļุāļāļ้āļāđāļāļāļĄāļēāđāļิāļāđāļŦ้āļāļĢิāļāļēāļĢāļัāļāļĨูāļāļ้āļēāļุāļāļāļāļี่āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļēāļั้āļāļāļāļāđāļĨ้āļ§ āļ้āļ§āļĒāđāļŦāļุāļั้āļ āļŠāļĄัāļāļĢāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļē āđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāļู้āđāļŦ้āļāļĢิāļāļēāļĢāđāļāļĄāļāļēāļĢāļāļัāļāļี่āđāļŦāļĄāļēāļ°āļŠāļĄāļี่āļŠุāļāđāļāļ่āļ§āļāđāļ§āļĨāļēāļี้ āđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļี่āļĄีāļุāļāļ āļēāļ pussy888 āļāļĢ้āļāļĄāļāļĢิāļāļēāļĢāļĨูāļāļ้āļēāļุāļāļāļāļี่āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ
āđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āđāļĨ่āļāļ่āļēāļĒ pussy888
āļุāļāļี่ 888 āļāļ§āļāđāļĢāļēāļĨืāļāļื่āļāļāļĒู่āđāļĨ้āļ§āļāļ°āđāļĢื่āļāļāļāļāļāđāļāļāđāļāđāļĨāļĒีāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ āļĢāļ§āļĄāļั้āļāļāļ§āļāđāļĢāļēāļึ้āļāļื่āļāļĨืāļāļāļēāļāļĒู่āđāļĨ้āļ§āđāļāđāļĢื่āļāļāļāļāļāđāļ§็āļāļี่āļูāļāļีāđāļāļ์āļĄāļēāđāļŦ้āđāļ้āļāļēāļāđāļ้āļ่āļēāļĒ āļุāļāļāļāļี่āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļē āļāļ°āđāļ้āđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļĄāļēāļ āļุāļāļāļāļี่āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļē āļāļ°āļŠāļēāļĄāļēāļĢāļāļāļģāđāļิāļāļāļēāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ pussy888 āļĻูāļāļĒ์āļŠāļ°āļŠāļĄāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ pussy888āļุāļāđāļāļāļāļĒ่āļēāļ āđāļŦāļĨ่āļāļŠāļ°āļŠāļĄāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļŠāļģāļŦāļĢัāļāļุāļāļāļāļี่āļāļāđāļāļ้āļāļāļāļēāļĢāļāļ°āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāđāļ้āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļē
āļāļ§āļāđāļĢāļēāļāļĢ้āļāļĄāļāļĢิāļāļēāļĢāļĨูāļāļ้āļēāļุāļāļāļāļี่āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ āļāļ§āļāđāļĢāļēāļāļĢ้āļāļĄāļĄāļāļāļāļĢāļ°āļŠāļāļāļēāļĢāļ์āļี่āđāļĒี่āļĒāļĄāļี่āļŠุāļāļŠāļģāļŦāļĢัāļāļุāļāļāļāļี่āļ้āļāļāļāļēāļĢāļāļ°āļŠāļĢ้āļēāļāļāļēāļีāļāđāļŠāļĢิāļĄ āļāļģāļĨัāļāļĄāļāļāļŦāļēāļŦāļāļāļēāļāļ§ิāļีāļāļēāļĢāļāļģāđāļิāļāđāļŦ้āļัāļāļāļāđāļāļ āđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļัāļāđāļ§็āļāļāļāļāļāļ§āļāđāļĢāļēāđāļ้āđāļĨāļĒāđāļāļ่āļ§āļāđāļ§āļĨāļēāļี้ āđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļี่āđāļĒี่āļĒāļĄāļี่āļŠุāļ āđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ āļĻูāļāļĒ์āđāļ็āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļ āļึ่āļāļŠāļēāļĄāļēāļĢāļāļĢ่āļ§āļĄāđāļĨ่āļāđāļāļĄāļŠ์āļāļēāļĢāļāļัāļāļ่āļēāļāđāļāļĢāļĻัāļāļ์āđāļāļĨื่āļāļāļี่āđāļ้
pussy888
āļŠāļĨ็āļāļ pussy888 āđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļี่āļุāļāđāļĄ่āļŠāļĄāļāļ§āļĢāļĨāļ°āđāļĨāļĒ
ReplyDeleteāļāļēāļĢāđāļĨ่āļāđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āđāļāļุāļāļ§ัāļāļี้āļĄีāđāļŦ้āļู้āđāļĨ่āļāđāļĨืāļāļāđāļĨ่āļāļĄāļēāļāļĄāļēāļĒāđāļāļāđāļāļĄāļั้āļāļĒัāļāđāļāļĄāļāļēāļāļēāļĢ่āļē āļĢูāđāļĨ็āļ āđāļāļĄāđāļ่ āđāļāļĄāļĒิāļāļāļāļĨāļē āļŦāļĢืāļāđāļāļĄāļŠāļĨ็āļāļāļāļāļāđāļĨāļ์ āļึ่āļāļัāļāļ§่āļēāđāļ็āļāđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļĒāļāļāļิāļĒāļĄ āđāļĨāļ°āļ็āđāļ็āļāļี่āļāļĨ่āļēāļ§āļึāļāļāļāļāđāļŦāļĨ่āļēāļāļāļูāļāđāļāđāļĨ่āļāđāļāļĄāļ้āļēāļāļŠิāļāļāļāļāđāļĨāļ์āđāļ็āļāļāļĒ่āļēāļāļĒิ่āļāđāļāļĒāđāļāļ§ัāļāļี้āļāļ§āļāđāļĢāļēāļāļ°āļĄāļēāđāļ๋āļĒāļึāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠāļĨ็āļāļ āļāļēāļāļ่āļēāļĒāđāļāļĄpussy888 āļี่āļัāļāļ§่āļēāđāļ็āļāļ่āļēāļĒāđāļāļĄāđāļāļāļ§āļāđāļāļāļāļāļāļāļีāļāļāļģāļāļ§āļāđāļĄ่āļ้āļāļĒāļāļĒ่āļēāļāļĒิ่āļāļāļĢิāļāđ āđāļื่āļāļāļāļēāļāļ§่āļēāļ้āļ§āļĒāļ้āļāđāļāļāđāļāļĄāđāļāļ่āļēāļĒāļี่āļĄีāļāļ§āļēāļĄāļ่āļēāļึāļāļูāļāđāļ āļ่āļēāđāļĨ่āļāļāļĒ่āļēāđāļāļĄāļŠāļĨ็āļāļ āđāļ็āļāđāļāļĄāļี่āļึ่āļāļูāļāđāļ้āļ§่āļē āđāļ้āļĢัāļāļāļ§āļēāļĄāļิāļĒāļĄāļิāļāļĨāļĄāļāļ āļāļāļึāļāļāļāđāļāļี่āđāļĄ่āđāļāļĒāđāļĨ่āļāđāļāļĄāļี้āļัāļāļ§่āļēāļāļĨāļēāļāļĄāļēāļāļĄāļēāļĒāļีāđāļีāļĒāļ§ āļāļāļĨāļāļ§่āļēāđāļĄ้āļุāļāļāļāđāļ āļĢāļ§āļĄāļั้āļāļāļĒāļēāļāļĄāļēāļāļĢāļ°āđāļ๋āļēāļāļŠ่āļ§āļāļŦāļŦāļึ่āļāđāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļāļēāļŠิāđāļāļŠāļĨ็āļāļpussy888 āļ§ัāļāļี้āļāļ§āļāđāļĢāļēāļāļ°āļāļēāļุāļāļāļāđāļāļูāļัāļāļ§่āļē āđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļี้ āļีāļĄāļēāļāļĒิ่āļāļāļ§่āļēāļāđāļāļĄāļāļēāļŠิāđāļāđāļāļāļื่āļāđāđāļ่āļāđāļĢ
āđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ pussy888
āđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ pussy888 āđāļāđāļāļĄāļĒāļāļāļิāļĒāļĄ āļĢāļ§āļĄāļั้āļāđāļ็āļāļี่āđāļ่āļĒāļึāļāđāļ็āļāļāļĒ่āļēāļāļĄāļēāļāđāļāļี 2020 āļี้ āļ้āļ§āļĒāđāļāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāđāļāļ āđāļāļāļāļĒ่āļēāļāđāļāļĄ āļāļ§āļēāļĄāļŠāļุāļāļŠāļāļēāļāļĢ่āļēāđāļĢิāļ āđāļŠāļāļŠāļ§่āļēāļ āļŠีāđāļŠีāļĒāļāļ้āļēāļāđāļāđāļāļĄāļี่āļ่āļ§āļĒāļāļģāđāļŦ้āļู้āđāļĨ่āļāđāļ้āļĢัāļāļāļ§āļēāļĄāļŠāļุāļāļŠāļāļēāļ āļāļ§āļēāļĄāļĢāļ°āļึāļāđāļāđāļāļัāļāļุāļāđāļāļēāļĢāļāļัāļ āļ็āđāļĨāļĒāļĄีāļุāļāļāļĨāļี่āđāļ้āļēāļĄāļēāđāļĨ่āļāđāļāļĄāļŠāļĨ็āļāļpussy888 āļัāļāļ่āļēāļāļāļĨāļāļ āļั้āļāđāļāļĄāļŠāļĨ็āļāļpussy888āļี้āļĒัāļāđāļ็āļāđāļāļĄāļี่āđāļĨ่āļāļ่āļēāļĒ āļู้āđāļĨ่āļāļŠāļēāļĄāļēāļĢāļāļāļģāđāļิāļāļāļēāļāđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļĨัāļāļĐāļāļ°āļี้āđāļ้āđāļĢ็āļ§āļāļ§่āļēāļāļĄāļāļēāļŠิāđāļāļื่āļāđāļ็āđāļĨāļĒāđāļĄ่āļ้āļāļāļāļāļāđāļāđāļĨāļĒāļ§่āļē āđāļāļĢāļēāļ°āļāļ°āđāļĢāļāļāļ°āļี้āļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠāļĨ็āļāļ pussy888 āļึāļāđāļāļĨāļāđāļ็āļāļี่āļāļāļāđāļāļāļāļāđāļŦāļĨ่āļēāļัāļāđāļĨ่āļāđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์āļัāļāđāļิ่āļĄāļึ้āļāđāļĢื่āļāļĒāđāļ§ัāļāđāļĨ้āļ§āļ§ัāļāđāļĨ่āļē
āļĢāļ§āļĄāļั้āļāđāļāļ§ัāļāļี้āđāļĄ้āļุāļāļึāļāļāļāđāļāļี่āļāļ°āļāļāļĨāļāļāđāļ้āļēāļĄāļēāļĢ่āļ§āļĄāļŠāļุāļāļŠāļāļēāļ āđāļĨ้āļ§āļ็āļื่āļāđāļ้āļ āđāļāļัāļāļāļēāļĢāđāļĨ่āļāđāļāļĄāļāļēāļŠิāđāļāļŠāļĨ็āļāļpussy888 āļāļ§āļāđāļĢāļēāļĄีāļ§ิāļีāļāļēāļĢāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠāļĨ็āļāļ āļี่āļŠāļēāļĄāļēāļĢāļāļ่āļ§āļĒāđāļŦ้āļู้āđāļĨ่āļāđāļ้āđāļāļāļēāļŠāļŠāļģāļŦāļĢัāļāđāļื่āļāļāļēāļĢāļāļģāđāļิāļāļāļēāļāđāļāļĄāļāļēāļŠิāđāļāļี้āđāļ้āļ่āļēāļĒāļĄāļēāļāļĒิ่āļāļึ้āļāļāļ§่āļēāđāļิāļĄāļĄāļēāļāļēāļ
āđāļĨ่āļāđāļāļĄāļāļēāļŠิāđāļāļŠāļĨ็āļāļpussy888 āļāļĒ่āļēāļāļĄีāļŠāļิāļŠัāļĄāļāļัāļāļāļ° āļĢāļ§āļĄāļั้āļāļิāļāļิāļิāļāļิāļāļēāļĢāļāļēāđāļŦ้āļีāļุāļāļāļĢāļēāļ§āļ่āļāļāļāļ°āđāļ้āļēāļĄāļēāļŠāļĄัāļāļĢāđāļĨ่āļāđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ āđāļ่āļēāļั้āļāđāļĄ่āļāļ āļāļēāļĢāđāļĨ่āļāđāļāļĄāļิāļāļāļĒู่āļŠิāļāļāļāļāļāđāļĨāļ์āļāļāļāļุāļāļāļģāđāļ็āļāļ้āļāļāđāļāļāļ่āļēāļāļēāļāļูāļื่āļāđāļื่āļāđāļ็āļāļāļēāļĢāđāļิ่āļĄāļ่āļāļāļāļēāļāļŠāļģāļŦāļĢัāļāđāļāļāļēāļĢāļāļģāđāļิāļ āļĒāļāļัāļ§āļāļĒ่āļēāļāđāļ่āļ āļāļัāļāļูāļ2 āđāļื่āļāđāļิ่āļĄāļ่āļāļāļāļēāļāļŠāļģāļŦāļĢัāļāđāļāļāļēāļĢāļāļģāđāļิāļāđāļิ่āļĄāļึ้āļāđāļĢื่āļāļĒāđāļāļēāļāļāļēāļĢāļāļāļ°āđāļāļĄāļāļēāļŠิāđāļāļี่āđāļŠีāļĒāđāļ
āđāļĄ่āļĒืāļĄ āļู้ āļŦāļĢืāļāļāļģāđāļิāļāļāļāļāļู้āļื่āļāļĄāļēāļĨāļāļุāļāđāļื่āļāđāļĨ่āļāđāļāļĄāļāļēāļŠิāđāļāļāļāļāđāļĨāļ์ āļ้āļ§āļĒāđāļŦāļุāļ§่āļēāļĄัāļāļāļēāļāļāļģāđāļŦ้āļู้āđāļĨ่āļāļĄีāļัāļāļŦāļēāļ้āļēāļāļāļēāļĢāđāļิāļāļāļēāļĄāļĄāļēāđāļ้ āđāļĄื่āļāđāļĨ่āļāđāļāļĄāđāļ้
āļ§ิāļีāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠāļĨ็āļāļ
pussy888 āļี้āļĒัāļāļĄีāļีāļāļŦāļĨāļēāļĒāđāļāļĨ็āļāļĨัāļāļĢ่āļ§āļĄāļัāļ āļึ่āļāļ้āļēāļŦāļēāļāļู้āđāļĨ่āļāļāļāđāļ āļ้āļŠāļēāļĄāļēāļĢāļāļ้āļēāļĄāļēāđāļĢีāļĒāļāļĢู้āļ§ิāļีāļāļēāļĢāđāļĨ่āļāđāļāļĄāļŠāļĨ็āļāļāļāļāļีāđāļ§็āļāđāļāļ์āļāļāļāļāļ§āļāđāļĢāļēāļāļĨāļāļ 24 āļั่āļ§āđāļĄāļ āļี่āļŠāļģāļัāļ āđāļ§็āļāđāļāļ์āļāļ§āļāđāļĢāļēāļĄีāđāļāļĢāđāļĄāļั่āļāđāļ็āļāļĢāļāļāļāļĒāļุāļāļāļĒู่āļ้āļ§āļĒ
Very Helpful Articles. lady hawk It might help you. lady hawk Thanks For Sharing
ReplyDeletelady hawk Thank you very much.
This Is Really Useful And Nices Information. lady hawk
ReplyDeleteThis are such great articles. lady hawk This articles can help you to make some new ideas.
https://soccersurfer98.hatenablog.com/entry/2020/09/02/132139?_ga=2.193217001.552343305.1598844608-1286484823.1596077192 I appreciate for reading my blogs.
This are new articles stylse for you. https://sbo98bet.wixsite.com/sbo98bet/post/%E0%B8%AA%E0%B8%A1-%E0%B8%84%E0%B8%A3-ufabet amazin555 http://foxz98bet.over-blog.com/ufabet-6 It might help you to write or think some new idea.
ReplyDeletehttps://dafa98bet.weebly.com/36263617363335883619362636173634359436363585/-ufabet8326348 Thanks for sharing such a wonderful post.
https://w88-com.jimdofree.com/2020/09/01/%E0%B8%AA%E0%B8%A1-%E0%B8%84%E0%B8%A3-ufabet/ I am very glad for reading my articles.
āļŠāļĄัāļāļĢpussy888
ReplyDelete