Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JAX-WS - IP addr klijenta

[es] :: Java :: JAX-WS - IP addr klijenta

[ Pregleda: 2021 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
*.adsl.beotel.net.



+1 Profil

icon JAX-WS - IP addr klijenta26.10.2007. u 20:05 - pre 200 meseci
Zdravo,

WebService se vrti na jboss 4.0.4 AS.
Veoma je jednostavan, nudi klijentima mogucnost dostave odredjenih alerta na mail i to realizuje preko SMTP.
Sve funkcionise kako je zamisljeno, jedino mi u logu nedostaje informacija sa koje IP adrese je pozvan servis.
Verujem da je ovo trivijalno, ako moze neki hint (ili resenje ;-))

Btw. javlja mi da je linija koja sadrzi "responseLine = is.readLine()) != null " deprecated, sa cim da zamenim readLine()?

Kod sledi:

Code:

import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.*;
import org.apache.log4j.*;
import java.io.*;
import java.net.*;


@Stateless()
@WebService()
public class msgSender {

    static Category Log = Category.getInstance(msgSender.class.getName());
    
    
    @WebMethod
    public String send(@WebParam(name = "kome") String kome, 
                       @WebParam(name = "tekst") String tekst,
                       @WebParam(name = "od") String od) 
    {
         String response = null;
         int rez = msgcComm(kome,tekst,od);
         
         if (rez == 1) 
         {
             Log.info("Status:"+rez+"(OK); From:"+od+"; To:"+kome+"; Msg:{"+tekst+"}");
         }
         else 
         {
             Log.info("Status:"+rez+"(MSGNOTSENT); From:"+od+"; To:"+kome+"; Msg:{"+tekst+"}");
         }
         return rez;
    }
    
    protected int msgcComm (String id, String txt, String from)
    {
        String host = "server.domen.com";
        Socket smtpSocket = null;  
        DataOutputStream os = null;
        DataInputStream is = null;
        
        try {
            smtpSocket = new Socket(host, 25);
            os = new DataOutputStream(smtpSocket.getOutputStream());
            is = new DataInputStream(smtpSocket.getInputStream());
            
        } catch (UnknownHostException e1) {
            return -10;
        } catch (IOException e2) {
            return -20;
        }
    if (os != null && is != null) {
            try {
            os.writeBytes("HELO\r\n");    
                os.writeBytes("MAIL From:"+from+"\r\n");
                os.writeBytes("RCPT To:"+id+"@server.domen.com\r\n");
                os.writeBytes("DATA\r\n");
                os.writeBytes(txt+"\r\n");
                os.writeBytes("\r\n.\r\n");
                os.writeBytes("QUIT");
                
                String responseLine;
                while ((responseLine = is.readLine()) != null) {
                    if (responseLine.indexOf("accepted") != -1) 
                    {
                        os.close();
                        is.close();
                        smtpSocket.close();  
                        return 1;
                                
                    }
                    if (responseLine.indexOf("Error") != -1) 
                    {
                        os.close();
                        is.close();
                        smtpSocket.close();  
                        return -1;
                    }
                        } 
            } catch (UnknownHostException e3) {
                return -30;
            } catch (IOException e4) {
                return -40;
            }
        }
   return -100; 
    }
}
 
Odgovor na temu

ph4t
Svetozar Misljencevic
between two worlds

Član broj: 5306
Poruke: 111
..172.205.adsl.dyn.edpnet.net.



Profil

icon Re: JAX-WS - IP addr klijenta26.10.2007. u 23:33 - pre 200 meseci
Jeli ovo trazis?

Code:

@WebService()
public class IPService {

    @Resource
    private WebServiceContext wsContext;
    
    @WebMethod
    public String getIP(){
        MessageContext mc = wsContext.getMessageContext();
        HttpServletRequest request = (javax.servlet.http.HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST);
        return request.getRemoteAddr();
    }
}
 
Odgovor na temu

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
*.adsl.beotel.net.



+1 Profil

icon Re: JAX-WS - IP addr klijenta27.10.2007. u 01:41 - pre 200 meseci
Uradio sam deploy koda koji si postovao, kada probam da konzumiram WS iz .net klijenta dobijam gresku:

Code:

System.Web.Services.Protocols.SoapHeaderException: javax.xml.rpc.ServiceException: Cannot find service endpoint target: jboss.j2ee:name=getIpWs,service=EJB3,jar=getIP.jar
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Client.WEBSRVC.getIpWsService.getIP(getIP getIP1) in C:\.......




[Ovu poruku je menjao cume dana 27.10.2007. u 14:46 GMT+1]
 
Odgovor na temu

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
*.adsl.beotel.net.



+1 Profil

icon Re: JAX-WS - IP addr klijenta27.10.2007. u 14:30 - pre 200 meseci
Hmmm... sada sam setovao jboss da koristi JRE 1.6, i greska je nestala.
Ali pojavio se novi exception:

Code:

System.InvalidOperationException: Client found response content type of '', but expected 'text/xml'.
The request failed with an empty response.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Client.WEBSRVC.IPWebSrvcService.getIP(getIP getIP1) in C:\Documents and Settings\...\Client\Web References\WEBSRVC\Reference.cs:line 79
   at Client.Form1.button1_Click(Object sender, EventArgs e) in C:\Documents and Settings\...\Client\Form1.cs:line 56


Pomoc?
 
Odgovor na temu

ph4t
Svetozar Misljencevic
between two worlds

Član broj: 5306
Poruke: 111
..172.205.adsl.dyn.edpnet.net.



Profil

icon Re: JAX-WS - IP addr klijenta28.10.2007. u 11:16 - pre 200 meseci
Isto sam napravio C# client i on bez problema radi. Ja kortistim glassfish2 umjesto jboss; mozda je to razlog?
 
Odgovor na temu

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
*.adsl.beotel.net.



+1 Profil

icon Re: JAX-WS - IP addr klijenta28.10.2007. u 11:49 - pre 200 meseci
Sigurno je jboss.
Da stvar bude crnja, ovo sam testirao na nekim win32 masinama koje imaju jdk6, a na produkciji bi trebalo da se vrti na FreeBSD 6.2 RELEASE(jdk5), tako da u najavi ne bi radilo...
Koliko sam samo vremena izgubio na ovu glupost... sve vise pocinjem da cenim jednostavnost i dobru dokumentovanost .net-a.

Resenje: Klijentska aplikacija u jednom parametru salje svoj IP, a WebService ga samo prosledi u log... nisam vise mogao da se smaram....

Pozz
 
Odgovor na temu

cume
Menadzer za visoko frekventnu naplatu u
maloprodajnom objektu

Član broj: 26038
Poruke: 315
*.adsl.beotel.net.



+1 Profil

icon [JBoss 4.2.1] JAX-WS - IP addr klijenta28.05.2008. u 23:46 - pre 193 meseci
Ok... promenio sam verziju JBossWS-a, pa ovo sto je ph4t napisao fercera.
Imam pitanje za koje verujem da je prosto, ali koliko god da sam guglao - nista.

Da li pristup wsdl-u i samom web servisu mogu da ogranicim na odredjeni opseg ip adresa na nivou AS?
Nesto kao WEB-INF/context.xml za tomcat?

Pokusavao sam da zabranim odredjene opsege u server.xml tomcata(odnosno JBossWeb-a 2.0), zatim u META-INF/context.xml od web servisa, ali sve bezuspesno za sada :-)

Pomoc?


 
Odgovor na temu

[es] :: Java :: JAX-WS - IP addr klijenta

[ Pregleda: 2021 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.