JNDI NameNotFoundException in java proxy
Hello All,
We are using a.jsp file that uses client proxy to send data to XI. We have crated the required .ear and have deployed it to the J2EE server.
The ejb-j2ee-engine.xml contains the following
<ejb-j2ee-engine>
<enterprise-beans>
<enterprise-bean>
<ejb-name>JavaProxyTest</ejb-name>
<ejb-ref>
<ejb-ref-name>ejb/JavaProxyTest</ejb-ref-name>
<jndi-name>ejb/JavaProxyTest</jndi-name>
</ejb-ref>
<session-props/>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
The java class that invokes the proxy bean has follwoing lines of code......
Context ctx = null;
Object ref = null;
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"com.sap.engine.services.jndi.InitialContextFactoryImpl");
p.put(Context.PROVIDER_URL, "zhmscad5:50000");
p.put(Context.SECURITY_PRINCIPAL, "qqsaraa");
p.put(Context.SECURITY_CREDENTIALS, "patni123");
System.out.println("1.0 -
JavaProxy_BSER cONTEXT cREATED");
ctx = new InitialContext(p);
System.out.println("1.1 -
JavaProxy_BSER cONTEXT cREATED");
queryOutLocalHome =(USERNAMESYNCABSMI_PortTypeLocalHome)ctx.lookup("/localejbs/sap.com/JavaProxyTest");
When we are trying to send the data through .jsp file we are getting the following error:
Error:
com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at java:comp, the whole lookup name is java:comp/env/ejb/JavaProxyTest
I am unable to figure out what should be JNDI name and how to use it in the java file
queryOutLocalHome =(USERNAMESYNCABSMI_PortTypeLocalHome)ctx.lookup("/localejbs/sap.com/JavaProxyTest");
Any help on the above issue will be appriciated.
Thanks
Abinash
Hello,
I am calling ejb from .jsp use following code
Properties props = new Properties();
InitialContext ctx = new InitialContext();
Object ob = ctx.lookup("java:comp/env/ejb/CalculatorBean");
CalculatorHome home = (CalculatorHome) PortableRemoteObject.narrow(ob, CalculatorHome.class);
calc = home.create();
I have a error:
java.lang.ClassNotFoundException: class com.sap.examples.calculator.beans.CalcProxy : com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at calculator, the whole lookup name is java:comp/env/ejb/CalculatorBean
My ejb-jar.xml is:
<display-name>
CalculatorEjb</display-name>
<enterprise-beans>
<session>
<icon/>
<ejb-name>Calculator</ejb-name>
<home>com.sap.examples.calculator.CalculatorHome</home>
<remote>com.sap.examples.calculator.CalculatorRemote</remote>
<local-home>com.sap.examples.calculator.CalculatorLocalHome</local-home>
<local>com.sap.examples.calculator.CalculatorLocal</local>
<service-endpoint>com.sap.examples.calculator.CalculatorServiceEndpoint</service-endpoint>
<ejb-class>com.sap.examples.calculator.CalculatorBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-ref>
<ejb-ref-name>ejb/CalculatorBean</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.sap.examples.calculator.CalculatorHome</home>
<remote>com.sap.examples.calculator.CalculatorRemote</remote>
<ejb-link>Calculator</ejb-link>
</ejb-ref>
<ejb-local-ref>
<description/>
<ejb-ref-name>ejb/CalculatorBean</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.sap.examples.calculator.CalculatorLocalHome</local-home>
<local>com.sap.examples.calculator.CalculatorLocal</local>
<ejb-link>Calculator</ejb-link>
</ejb-local-ref>
</session>
</enterprise-beans>
my ejb-j2ee-engine.xml is:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-j2ee-engine
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ejb-j2ee-engine.xsd">
<enterprise-beans>
<enterprise-bean>
<ejb-name>Calculator</ejb-name>
<ejb-ref>
<ejb-ref-name>ejb/CalculatorBean</ejb-ref-name>
<jndi-name>ejb/CalculatorBean</jndi-name>
</ejb-ref>
<ejb-local-ref>
<ejb-ref-name>ejb/CalculatorBean</ejb-ref-name>
<jndi-name>ejb/CalculatorBean</jndi-name>
</ejb-local-ref>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
Similar Messages
-
Java Proxy Runtime: failure to locate proxy bean on inbound call
Hello gurus of the SDN,
I have been trying to get an inbound Java Proxy scenario to work in XI 3.0 but have not been able to get the JPR to recognize my generated and deployed java code. My scenario is set up to call the java proxies generated from a message interface based on the MATMAS Idoc. I successfully deployed the generated java proxies on the same host box as is running the XI instance. The objects are named as follows
Message interface on XI = Inbound_MATMAS04
Generated proxy bean = Inbound_MATMAS04_PortTypeBean
Implementing class = InboundMATMAS04_PortTypeImpl
Implementing method = inboundMATMAS04
I used the JPR transport servlet to register the interface and implementing class but am not sure if I did this correctly. I used the following entry in my web browser:
http://nadcp786:50000/ProxyServer/register?
ns=urn:xiTrainingLabs:groupXX:SAP&
interface=InboundMATMAS04&
bean=InboundMATMAS04_PortTypeImpl&
method=inboundMATMAS04
I also tried using the localejb/ prefix for the bean name in the above step since the code is co-located. When I trigger the scenario, the Idoc info is passed into XI and the Java Proxy Runtime is called, but I get the following error response back in the SOAP header:
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="PARSING">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Cannot locate proxy bean InboundMATMAS04_PortTypeImpl: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Cannot locate proxy bean InboundMATMAS04_PortTypeImpl</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Finally, appended at the end of this post is the audit log of the messaging system showing that the JPR is called but without being able to locate the bean. I think I am missing a configuration step somewhere, but cant figure out what it is!! Can anyone help me?
Many thanks in advance.
Regards,
Nick Simon
Time Stamp Status Description
2004-10-25 19:47:32 Success The message was successfully received by the messaging system. Profile: XI URL: http://nadcp786.bcsdc.lexington.ibm.com:50000/MessagingSystem/receive/JPR/XI
2004-10-25 19:47:32 Success Using connection JPR. Trying to put the message into the receive queue.
2004-10-25 19:47:32 Success The message was successfully retrieved from the receive queue.
2004-10-25 19:47:32 Success The message status set to DLNG.
2004-10-25 19:47:32 Success Java proxy runtime (JPR) accepted the message
2004-10-25 19:47:34 Error JPR could not process the message. Reason: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl
2004-10-25 19:47:34 Error Delivery of the message to the application using connection JPR failed, due to: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl.
2004-10-25 19:47:34 Error The message status set to FAIL.
2004-10-25 19:47:34 Error Asynchronous error detected: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl. Trying to report it.
2004-10-25 19:47:34 Error Asynchronous error reported.
Message was edited by: Nicholas SimonHi
How do you determine the JNDI naming of the a EJB?
I have following entry in JNDI directory in the root
Object Name FlightQueryIn
Class Name javax.naming.Reference
Context Name
Object Value Reference Class Name:
Type: clientAppName
Content: sap.com/JavaProxyEAR
Type: interfaceType
Content: remote
Type: home
Content: com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundHome4
Type: ejb-link
Content: FlightSeatAvailabilityQueryIn_PortTypeBean
Type: jndi-name
Content: FlightQueryIn
Type: remote
Content: com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundRemote4
I tried to register the bean with JPR using:
http://ctsapxid01:50100/ProxyServer/register?ns=http://sap.com/xi/XI/Demo/Airline&interface=FlightSeatAvailabilityQuery_In&bean=FlightQueryIn&method=flightSeatAvailabilityQueryIn
I followed the following blog
http://wiki.sdn.sap.com/wiki/display/Java/JavaProxyChangesinPI7.1fromPI7.0
Thanks,
Chris -
Error while running java proxy in PI 7.1
Hi All,
I had created a java proxy using nwds 7.1. This java proxy is called by XI channel and its synchronous.
WHen i run my scenario in PI i am getting a error "Error while sending message: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing inbound message. Exception: No remote bean found for reference of class $Proxy2919
Kindly help me finding what can be the issue.
Regards,
RajeshGo to the JNDI Browser (Nwa -> Problem Management), and check if the proxy was deployed correctly with the exact name "Proxy2919".
Also, check the OSS note below.
#1292633 - JPR: Throwing "No remote bean found for reference of class" -
Hi
I have developed a search servlet and deployed it in tomcat 4.0.3 and connected to mysql database through jdbc by specifying jndi.
I have coded JNDI lokkup name as "java:comp/env/jdbc/KgoogleDB"
I have added a context in server.xml file of tomcat for DBCP connection pooling .I have tested this in windows and it is running well in it.
But when i hosted this in linux i got error like this
INIT OF SEARCH SERVLET
Error in file reading Connection refused
File Not Found
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at javax.naming.InitialContext.lookup(InitialContext.java:354)
at DbConnect.getConnection(DbConnect.java:35)
at QueryDetails.Query(QueryDetails.java:32)
at Search.doPost(Search.java:66)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:446)
at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:216)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHandler.java:217)
at org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:194)
at java.lang.Thread.run(Thread.java:536)
Connection ID null
Entered FINALLY
=================================
What would be the cause of this error?.Please help me.
My server.xml context is
- <Host className="org.apache.catalina.connector.warp.WarpHost" name="www.keralagoogle.com" debug="0" appBase="/domains/www.yy.com/tomcat/webapps" unpackWARs="true">
- <Context path="/yyjava" docBase="/domains/www.yy.com/tomcat/webapps/yyjava" debug="0" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_KgoogleDB." suffix=".txt" timestamp="true" />
<Resource name="jdbc/KgoogleDB" auth="Container" type="javax.sql.DataSource" />
- <ResourceParams name="jdbc/KgoogleDB">
- <parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
- <!--
Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
- <parameter>
<name>maxActive</name>
<value>500</value>
</parameter>
- <!--
Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
- <parameter>
<name>maxIdle</name>
<value>300</value>
</parameter>
- <!--
Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
- <parameter>
<name>maxWait</name>
<value>12000</value>
</parameter>
- <!-- MySQL dB username and password for dB connections
-->
- <parameter>
<name>username</name>
<value>pratap</value>
</parameter>
- <parameter>
<name>password</name>
<value>ky67yumXg</value>
</parameter>
- <!-- Class name for mm.mysql JDBC driver
-->
- <parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
- <!--
The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
- <parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/kgoogle?</value>
</parameter>
</ResourceParams>
</Context>
==============================
Please help me find if i have to change the syntax for linux in the above code.
Thanks in Advance
Prathaphi
Thanks for your advise.
But when i chenged my web.xml and jndi name in my servlet file i got error like this
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
at javax.naming.InitialContext.lookup(InitialContext.java:354)
at DbConnect.getConnection(DbConnect.java:35)
at QueryDetails.Query(QueryDetails.java:32)
at Search.doPost(Search.java:66)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServl
et.java:446)
at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.jav
a:216)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1107)
at java.lang.Thread.run(Thread.java:536)
Connection ID null
Entered FINALLY
Please help me
Thanks in Advance
Prathap -
Unable to invoke java proxy in PI 7.1
Hi ,
I am using NWDS 7.2 (Trial ver) and using it to deploy java proxy on PI 7.1.
I also registered the interface using http://<pi>:<port>/ProxyServer url
But when I invoke the proxy I get the error as
"Cannot locate proxy bean"
Please tell me what to do...
regards,
PiyushHi,
This sort of error usually comes when JPR cannot find the deployed java server proxy bean.
1) Register ur server proxy using this :
http://host:port/ProxyServer/register?ns=xxx&interface=SI_Proxy_IA&bean=localejbs/Jndi-name&method=method name
refer this: http://help.sap.com/saphelp_nw04/helpdata/en/a4/d5b3b0b16843b3867c0245d9847ae5/content.htm
2)Chk whether u have mentioned the corrcet JNDI name while registering the URL.
3) Chk ur JNDI name under NWA.
4) Chk ur references under application-j2ee-engine.xml.
<?xml version="1.0" encoding="UTF-8"?>
<application-j2ee-engine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="application-j2ee-engine.xsd">
<reference reference-type="weak">
<reference-target provider-name="sap.com" target-type="library">com.sap.aii.af.sdk.lib</reference-target>
</reference>
<reference reference-type="weak">
<reference-target provider-name="sap.com" target-type="service"> com.sap.aii.proxy.svc</reference-target>
</reference>
<reference reference-type="weak">
<reference-target provider-name="sap.com" target-type="library">com.sap.xi.util.misc</reference-target>
</reference>
<reference reference-type="weak">
<reference-target provider-name="sap.com" target-type="library">com.sap.guid</reference-target>
</reference>
</application-j2ee-engine>
Thanks
Amit -
Java Proxy error: Exception in method methodExists
Hello all!
We are doing the following synchronous scenario: CRM->XI->JavaProxy--->Third party....
Here is the process we are following to deploy our Proxy:
1.Created EJB Module Project in NWDS
2.Import the files generated by XI into ejbModule folder from ZIP file.
3.Renamed *PortTypeImpl.template to *PortTypeImpl.java
4.Compiled all code (no errors)
5.Added all the references to the SAP libraries required (taken from our XI server):
com.sap.aii.proxy.xiruntime
com.sap.xi.util.misc
com.sap.aii.messaging.runtime
com.sap.guid
6.Codified Java Proxy codified the method <interfacename> in the <intefacename>_PortTypeImpl class.
7.Edited ejb_jar.xml to add EJBs.
8.Provided a JNDI name in the file ejb-j2ee-engine.xml.
9.Built EJB archive (no errors).
10.Created a new Enterprise Application Project and pointed build path to our EJB Project.
11.Added our EJB to the Enterprise Application project.
12.Created the references to the SAP libraries in the Enterprise Application Project in the application-j2ee-engine.xml file:
com.sap.aii.proxy.xiruntime
com.sap.xi.util.misc
com.sap.aii.messaging.runtime
com.sap.guid
13.Within the Enterprise Application Project we built an EAR file.
14.We deployed our .ear file to the J2EE Engine via Visual Admin (no errors).
15.We registered our Java Proxy on the ProxyServer, using
/register?ns=<interface_namespace>&interface=<XI_Interface_Name>&bean=<EJB_JNDI_name> &method=<name of the method implemented by you on the _PortTypeImpl>
Actually, we did the following:
url for registering the EJB:
http://ithpsrq0:50200/ProxyServer/register?ns=http://banco.popular.com.pr/xi/crm&interface=mi_AccountInfo_is&bean=popularinc.com/MiAccountInfoIs_Default&method=miAccountInfoIs
Message displayed when listing interfaces (http://ithpsrq0:50200/ProxyServer/listAll)
http://banco.popular.com.pr/xi/crm#mi_AccountInfo_is = popularinc.com/MiAccountInfoIs_Default:miAccountInfoIs
1 interfaces found
When running the interface we get the following error:
com.sap.aii.af.ra.ms.api.DeliveryException: Error checking method name miAccountInfoIs of remote inbound proxy bean $Proxy250: Exception in method methodExists.: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error checking method name miAccountInfoIs of remote inbound proxy bean $Proxy250: Exception in method methodExists.
Does anyone have any suggestions?
What causes a "methodExists" Exception?
Please help us,
Thanks a lot!!!Hi,
Is this a runtime of "com.sap.aii.proxy.xiruntime.core"
please check the jars used, adding this jars will solve this i guess.
aii_utilxi_misc.jar
ejb20.jar
exception.jar
jARM.jar
sapj2eeclient.jar
sapxmltoolkit.jar
aii_msg_runtime.jar
aii_proxy_xirt.jar
Also check, application-j2ee-engine.xml and see if,
com.sap.aii.proxy.xiruntime
com.sap.aii.messaging.runtime
com.sap.xi.util.misc
com.sap.guid
You wil get the jars in XI servers, you can ftp and get the jars, but you may need to search them.
Anotherthing, always take the jars from the xi servers to be sure you are compatible with the upgrades .
Hope this solves your problem.
Anirban. -
Hello!
i configured a test xi scenario: JSP->(JAVA Proxy)-> XI -> file adapter.
Jsp is in the same bean of proxy.
I deploy this j2ee application in the same j2ee of XI.
When I open jsp page with browser and send data, nothing appened.
I check also in adapter engine monitor and xml monitor but i can't see any message.
I think the problem is inside java bean because if i fix the output data, after post action i see data in jsp page.
this is the class for call proxy:
public class InvokeProxy {
public String getRole(String name, String pwd){
String role="";
UsersSyncMI_PortTypeLocalHome queryOutLocalHome=null;
UsersSyncMI_PortTypeLocal queryOutLocal=null;
try{ Context ctx = null; Object ref = null; Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"com.sap.engine.services.jndi.InitialContextFactoryImpl");
p.put(Context.PROVIDER_URL, "server:50004");
p.put(Context.SECURITY_PRINCIPAL, "user");
p.put(Context.SECURITY_CREDENTIALS, "pwd");
ctx = new InitialContext();
queryOutLocalHome = (UsersSyncMI_PortTypeLocalHome)ctx.lookup("java:comp/env/ejb/UsersSyncMI_PortTypeBean");
queryOutLocal = queryOutLocalHome.create();
MessageSpecifier msg = queryOutLocal.$messageSpecifier();
msg.setSenderService("BS_XID_PROXY");
queryOutLocal.$messageSpecifier(msg);
UserDT_Type reqtype = new UserDT_Type();
reqtype.setUsername(name);
reqtype.setPassword(pwd);
UsersDBDTResponse_Type response = new UsersDBDTResponse_Type();
response = queryOutLocal.usersSyncMI(reqtype);
role = role + response.getStatementResponse().get_as_listRow().getRow(0).getRole();
} catch(Exception ex){
System.out.println(ex.getMessage()); } return role; }
any suggestion
thanks AleI haven't J2SE in my scenario. I can't try.
anyway, the code that i'm using now for call proxy is:
try{ Context ctx = null; Object ref = null; Properties p = new Properties();
ctx = new InitialContext();
ref = ctx.lookup("java:comp/env/ejb/MIZPROTOTIPOOUT_PortTypeBean");
queryOutLocalHome = (MIZPROTOTIPOOUT_PortTypeLocalHome)ctx.lookup("java:comp/env/ejb/MIZPROTOTIPOOUT_PortTypeBean");
queryOutLocal = queryOutLocalHome.create();
MessageSpecifier msg = queryOutLocal.$messageSpecifier();
msg.setSenderService("BS_XID_PROXY");
queryOutLocal.$messageSpecifier(msg);
DTZPROTOTIPOOUT_Type reqtype = new DTZPROTOTIPOOUT_Type();
reqtype.setData1(name);
reqtype.setData1(pwd);
DTZRETURN_Type response = new DTZRETURN_Type();
queryOutLocal.mIZPROTOTIPOOUT(reqtype);
String respons = "work!";
role = respons;
} catch(Exception ex){
System.out.println(ex.getMessage());
String error = ex.getMessage();
role = error;
return role; } -
Java Proxy message in waiting status
Hi,
Let me explain my case, In our Integration Scenario we have configured an Inbound Java Proxy as the How to guide (HOW TO WORK WITH JAVA PROXIES) expain, but the proxy doesn't hava code, that is, it have the code by default when its created, and when we register it and the scenario runs, in the message monitoring the status of the message to the JP Business Service is in WAITING status, and in the details it says sometimes that an old reference to another JNDI name of bean is doesn't locate or the message "MessageSpecifier could not be reset".
Remember, the Imp. class has only the default code and the scenario is JDBC --> XI --> JavaProxy
Any ideas?Hi Hector,
Status: WAITING
The message had been sent and it is failed and is currently waiting for another attempt.
Solution :
When the fist attempt to deliver the message has failed (a recoverable exception arose), the message is usually rescheduled and the status is updated to WAITING. As long as the message is in this status, the Messaging System retries to deliver the message according to the configured retry settings (default 3 tries).
Regards
Agasthuri Doss -
Hi All,
Just tell me whether this is the correct way of registering the Java Proxy or not....
I am using Inbound Proxy...
http://sapntwr.wipro.com:50000/ProxyServer/register?ns=urn://wipro.com/proxytest&interface=MIDataTarget&bean=com.wipro.proxytest/JProxEAR/MIDataTarget_PortTypeBean&method=mIDataTarget
where
sapntwr.wipro.com is the host
50000 is the port
urn://wipro.com/proxytest is the namespace I have created my objects
MIDataTarget is the Message Interface for Target message
com.wipro.proxytest/JProxyEAR/MIDataTarget_PortTypeBean is the JNDI Name
and
mIDataTarget is the method used in Implementation class to access the data.
If this is the correct way to register, then I am puzzled why I am getting error in SXMB_MONI....
Messages are stopped in the queue.
Can anyone help me out to solve this......
Thanks & Regards,
Prasad UHi Sudhir,
Thank you for the response. Now I am getting the following error in "Error" xml in SOAP Header.
Please tell me wheather this is coz of some authentication problem or some problem with my Proxy.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="INTERNAL">HTTP_RESP_STATUS_CODE_NOT_OK</SAP:Code>
<SAP:P1>403</SAP:P1>
<SAP:P2>Forbidden</SAP:P2>
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Error Report</title> <style> td {font-family : Arial, Tahoma, Helvetica, sans-serif; font-size : 14px;} A:link A:visited A:active </style> </head> <body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" rightmargin="0"> <table width="100%" cellspacing="0" cellpadding="0" border="0" align="left" height="75"> <tr bgcolor="#FFFFFF"> <td align="left" colspan="2" height="48"><font face="Arial, Verdana, Helvetica" size="4" color="#666666"><b> 403   Forbidden</b></font></td> </tr> <tr bgcolor="#3F73A3"> <td height="23" width="84"><img width=1 height=1 border=0 alt=""></td> <td height="23"><img width=1 height=1 border=0 alt=""></td> <td align="right" height="23"><font face="Arial, Verdana, Helvetica" size="2" color="#FFFFFF"><b>SAP J2EE Engine/6.40 </b></font></td> </tr> <tr bgcolor="#9DCDFD"> <td height="4" colspan="3"><img width=1 height=1 border=0 alt=""></td> </tr> </table> <br><br><br><br><br><br> <p><font face="Arial, Verdana, Helvetica" size="3" color="#000000"><b> You are not authorized to view the requested resource.</b></font></p> <p><font face="Arial, Verdana, Helvetica" size="2" color="#000000"><table><tr><td valign="top"><b> Details:</b></td><td valign="top"><PRE>No details available</PRE></font></td></tr></table></font></p> </body> </html></SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>HTTP response contains status code 403 with the description Forbidden XML element Envelope missing in SOAP message header (SAP XI Extension)</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Regards,
Prasad U -
Problem with Asyncronous Java Proxy
Hi Friends,
My scenario is JAVA>XI>JDBC (Asyncronous Message).
I have imported the generated jar file and Created new Java Class (Invoke Proxy) in same project.Iam getting an error when I call this class from JSP .
When I use :
Object ref = ctx.lookup("java:comp/env/ejb/VendorOut_PortTypeBean");
queryOutHome = (VendorOut_PortTypeHome) PortableRemoteObject.narrow(ref, VendorOut_PortTypeHome.class);
queryOutRemote = queryOutHome.create();
I am getting an error: NULL
(After Lookup In Catch :null)
<u>InvokeProxy.java file:</u>
public class InvokeProxy {
public String SendVendor(String VendorNumber, String LastName,String SearchTerm,String Currency,String Street,String City,String Zip,String Country )
String Message = "";
VendorOut_PortTypeLocalHome queryOutLocalHome = null;
VendorOut_PortTypeLocal queryOutLocal = null;
VendorOut_PortTypeHome queryOutHome = null;
VendorOut_PortTypeRemote queryOutRemote = null;
try {
Properties p = new Properties();
p.put(
Context.INITIAL_CONTEXT_FACTORY,
"com.sap.engine.services.jndi.InitialContextFactoryImpl ");
p.put(Context.PROVIDER_URL, "server:port");
p.put(Context.SECURITY_PRINCIPAL, "Administrator");
p.put(Context.SECURITY_CREDENTIALS, "password");
InitialContext ctx = new InitialContext();
Message = "before Lookup";
Object ref = ctx.lookup("java:comp/env/ejb/VendorOut_PortTypeBean");
Message = "After Lookup";
queryOutHome = (VendorOut_PortTypeHome) PortableRemoteObject.narrow(ref, VendorOut_PortTypeHome.class);
Message = Message + "After Lookup";
queryOutRemote = queryOutHome.create();
Message = Message + "After Lookup create";
MessageSpecifier msg = queryOutRemote.$messageSpecifier();
msg.setSenderService("TBIT_PROXY_BS");
queryOutRemote.$messageSpecifier(msg);
VendorDT_Type reqtype = new VendorDT_Type();
AddressDT_Type reqtype1 = new AddressDT_Type();
reqtype1.setStreet(Street);
reqtype1.setCity(City);
reqtype1.setCountry(Country);
reqtype1.setZip(Zip);
reqtype.setVendorNumber(VendorNumber);
reqtype.setLastName(LastName);
reqtype.setSearchTerm(SearchTerm);
reqtype.setCurrency(Currency);
reqtype.setAddress(reqtype1);
queryOutLocal.vendorOut(reqtype);
Message = Message + "Message Send ";
} catch (Exception ex) {
Message = Message + "In Catch"+ ex.getMessage();
return Message ;
} //end of classHi Friends,
My scenario is JAVA>XI>JDBC (Asyncronous Message).
I have imported the generated jar file and Created new Java Class (Invoke Proxy) in same project.Iam getting an error when I call this class from JSP .
( I have tried out same as given SDN forums-Java Proxy Problem )
When I use :
Object ref = ctx.lookup("java:comp/env/ejb/VendorOut_PortTypeBean");
queryOutHome = (VendorOut_PortTypeHome) PortableRemoteObject.narrow(ref, VendorOut_PortTypeHome.class);
queryOutRemote = queryOutHome.create();
I am getting an error: NULL
(After Lookup In Catch :null)
InvokeProxy.java file:
public class InvokeProxy {
public String SendVendor(String VendorNumber, String LastName,String SearchTerm,String Currency,String Street,String City,String Zip,String Country )
String Message = "";
VendorOut_PortTypeLocalHome queryOutLocalHome = null;
VendorOut_PortTypeLocal queryOutLocal = null;
VendorOut_PortTypeHome queryOutHome = null;
VendorOut_PortTypeRemote queryOutRemote = null;
try {
Properties p = new Properties();
p.put(
Context.INITIAL_CONTEXT_FACTORY,
"com.sap.engine.services.jndi.InitialContextFactoryImpl ");
p.put(Context.PROVIDER_URL, "server:port");
p.put(Context.SECURITY_PRINCIPAL, "Administrator");
p.put(Context.SECURITY_CREDENTIALS, "password");
InitialContext ctx = new InitialContext();
Message = "before Lookup";
Object ref = ctx.lookup("java:comp/env/ejb/VendorOut_PortTypeBean");
Message = "After Lookup";
queryOutHome = (VendorOut_PortTypeHome) PortableRemoteObject.narrow(ref, VendorOut_PortTypeHome.class);
Message = Message + "After Lookup";
queryOutRemote = queryOutHome.create();
Message = Message + "After Lookup create";
MessageSpecifier msg = queryOutRemote.$messageSpecifier();
msg.setSenderService("TBIT_PROXY_BS");
queryOutRemote.$messageSpecifier(msg);
VendorDT_Type reqtype = new VendorDT_Type();
AddressDT_Type reqtype1 = new AddressDT_Type();
reqtype1.setStreet(Street);
reqtype1.setCity(City);
reqtype1.setCountry(Country);
reqtype1.setZip(Zip);
reqtype.setVendorNumber(VendorNumber);
reqtype.setLastName(LastName);
reqtype.setSearchTerm(SearchTerm);
reqtype.setCurrency(Currency);
reqtype.setAddress(reqtype1);
queryOutRemote.vendorOut(reqtype);
Message = Message + "Message Send ";
} catch (Exception ex) {
Message = Message + "In Catch"+ ex.getMessage();
return Message ;
} //end of class -
I write a EJB client to call the deployed java proxy, but I got the following exception, sounds like
authorization error, but I have already used the xiappluser to access.
Exception in thread "main" com.sap.aii.proxy.xiruntime.core.BaseProxyException:
Error sending MS message. Exception: Received HTTP response code 401.
at com.sap.aii.proxy.xiruntime.core.AbstractProxy.send$(AbstractProxy.ja
va:146)
Here is the my code:
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sap.engine.services.jndi.InitialContextFactoryImpl");
p.put(Context.PROVIDER_URL, "<sid>:50104");
p.put(Context.SECURITY_PRINCIPAL, "xiappluser");
p.put(Context.SECURITY_CREDENTIALS, "****");
Context ctx = new InitialContext(p);Hi,
We have the almost the same problem, we write a Java Application to call the deployed java proxy, but I got the following exception:
...com.sap.aii.proxy.xiruntime.core.BaseProxyException:
Error sending MS message. Exception: Received HTTP response code 404: Not found.
Anyone have an idea what's happing?
Regards,
Luis Diego -
Call Client Java Proxy from Server Java Proxy
Hi Gurus!!
I'm trying to call a Client Java Proxy from a Server Java Proxy.
Is possible to do this? I think must be possible.
I have called this Client Java Proxy from another application, and run ok.
I have tried to call it following the Guide to call Java Client Proxies:
es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome queryOutHome = null;
es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeRemote queryOutRemote = null;
try {
// Get naming context
Properties p = new Properties();
p.put(
Context.INITIAL_CONTEXT_FACTORY,
"com.sap.engine.services.jndi.InitialContextFactoryImpl");
p.put(Context.PROVIDER_URL, "myurl:50104");
p.put(Context.SECURITY_PRINCIPAL, "MMIGUEZ");
p.put(Context.SECURITY_CREDENTIALS, mypasswrod);
Context ctx = new InitialContext(p);
Object ref = ctx.lookup("RobotOut");
// Look up jndi name of proxy bean
try {
queryOutHome =
(MIRobotOut_PortTypeHome) PortableRemoteObject.narrow(
ref,
MIRobotOut_PortTypeHome.class);
} catch (Exception e) {
throw new RuntimeException(e + "1");
// Get Remote interface
queryOutRemote = queryOutHome.create();
} catch (Exception e) {
throw new RuntimeException(e + "2");
but I get this error
"com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome"
es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortTypeHome is the corresponding PortTypeHome to the Client Java Proxy.
I have tried to call too calling directly from the server Java Proxy to the method correcponding to the Client Java Proxy. The error I get is:
"com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTRobot_Type: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTRobot_Type"
Tha call to the client is:
es.navantia.xi.mm.dispositivosRobotizadosKasto.MIRobotOut_PortType clase = null;
es.navantia.xi.mm.dispositivosRobotizadosKasto.DTRobot_Type client_req = null;
es.navantia.xi.mm.dispositivosRobotizadosKasto.DTRobotResponse_Type client_res = null;
client_res = clase.mIRobotOut(client_req);
Please, any help will be useful.
Thanks and regards,
Manuel Míguez.Hi,
Now I get another error message:
com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/MITextoOut_PortTypeRemote: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/MITextoOut_PortTypeRemote
Now, my source is:
MITextoOut_PortTypeHome queryOutHome = null;
MITextoOut_PortTypeRemote queryOutRemote = null;
try {
// Get naming context
Context ctx = new InitialContext();
// Look up the EJB name in the environment
Object ref = ctx.lookup("java:comp/env/ejb/TextoOut");
// Object ref = ctx.lookup("java:comp/env/ejb/MITextoOut_PortTypeBean");
// Cast to Home interface
queryOutHome = (MITextoOut_PortTypeHome)
PortableRemoteObject.narrow(ref,
MITextoOut_PortTypeHome.class);
// Get Remote interface
queryOutRemote = queryOutHome.create();
} catch (Exception e) {
System.out.println("RemoteException occurred: "+e.getMessage());
e.printStackTrace();
//return;
try {
queryOutRemote.$messageSpecifier();
} catch (RemoteException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
DTTexto_Type Texto_type = new DTTexto_Type();
Texto_type.setTexto(req_texto);
DTTextoResponse_Type Texto_response = new DTTextoResponse_Type();
try {
Texto_response = queryOutRemote.mITextoOut(Texto_type);
} catch (SystemFaultException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ApplicationFaultException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
I have tryed removing queryOutRemote.$messageSpecifier() and I get the error:
com.sap.aii.af.ra.ms.api.DeliveryException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTTexto_Type: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Error invoking method mIRobotIn of proxy bean $Proxy351: es/navantia/xi/mm/dispositivosRobotizadosKasto/DTTexto_Type
Somebody knows what could be the cause of these errors?
Thanks and regards,
Manuel. -
Problem with Java Proxy and Socket Connection
Hi Gurus!!
I have developed a Java Proxy that connects via socket with a Server Socket application. This Server Socket application accepts more than one connection at the same time.
When I connect the first time from my Java Proxy, the connection is correctly established. When the first connection opened, if a try a second connection, this is not established.
I use "new Socket(SocketServer,SocketPort);" to open the connection.
I think that all time the Java Proxy is trying to open the same connection, and this is a problem.
Is there a way to indicate to the server that is a new connection and that the existing connections remain?
Anybody could help me, please?
Thanks and regards,
Manuel Míguez.Sorry!!!!i must give you more information.
The error which i have when i push the submit button is
HTTP Status 404 -
type Status report
message
descriptionThe requested resource () is not available.
GlassFish Server Open Source Edition 3.0.1
My thought is that the error is in this line
String connectionURL = "jdbc:mysql://localhost/mybooking";in mysql when i write this code then the table opens with no problems:
mysql>show databases;
mysql>usebooking;
mysql>showtables;
mysql>describe booking;Furthermore i have added in my web application the library mysql JDBC driver my-sql-connector-java-5.1.6.bin.jar
Edited by: 813355 on Nov 22, 2010 1:50 AM
Edited by: 813355 on Nov 22, 2010 2:00 AM -
Problem in creating a java proxy for PHP web service
This is a problem in generating a java proxy for a PHP webservice.
I have a PHP service running on Wamp Server and also a PHP client which is able to call the service.
The WSDL for the PHP web service is also generated .
I am trying to create a java proxy using the jdev (10.1.3.0.3) from the wsdl file.
The wsdl generated by the php program is
<?xml version="1.0" encoding="ISO-8859-1" ?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:hellowsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:hellowsdl">
<types>
<xsd:schema targetNamespace="urn:hellowsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="helloRequest">
<part name="name" type="xsd:string" />
</message>
<message name="helloResponse">
<part name="return" type="xsd:string" />
</message>
<portType name="hellowsdlPortType">
<operation name="hello">
<documentation>Says hello to the caller</documentation>
<input message="tns:helloRequest" />
<output message="tns:helloResponse" />
</operation>
</portType>
<binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="hello">
<soap:operation soapAction="urn:hellowsdl#hello" style="rpc" />
<input>
<soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="hellowsdl">
<port name="hellowsdlPort" binding="tns:hellowsdlBinding">
<soap:address location="http://localhost/mywork/myphp.php" />
</port>
</service>
</definitions>After making following changes to the wsdl program, I tried to generate java proxy.
<definitions name="hellowsdl"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:si="http://soapinterop.org/xsd" xmlns:tns="http://localhost/mywork/hellowsdl.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/mywork/myphpwsdl.wsdll">
<types>
<xsd:schema targetNamespace="http://localhost/mywork/hellowsdl.wsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="helloRequest">
<part name="name" type="xsd:string" />
</message>
<message name="helloResponse">
<part name="return" type="xsd:string" />
</message>
<portType name="hellowsdlPortType">
<operation name="hello">
<documentation>Says hello to the caller</documentation>
<input message="tns:helloRequest" />
<output message="tns:helloResponse" />
</operation>
</portType>
<binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="hello">
<soap:operation soapAction="" style="rpc" />
<input>
<soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="hellowsdl">
<port name="hellowsdlPort" binding="tns:hellowsdlBinding">
<soap:address location="http://localhost/mywork/myphp.php" />
</port>
</service>
</definitions>This is how the java stub file looks like:
public class HellowsdlBinding_Stub
extends oracle.j2ee.ws.client.StubBase
implements demo.mypackage.HellowsdlPortType {
* public constructor
public HellowsdlBinding_Stub(HandlerChain handlerChain) {
super(handlerChain);
_setProperty(ENDPOINT_ADDRESS_PROPERTY, "http://localhost/mywork/hellowsdl.php");
setSoapVersion(SOAPVersion.SOAP_11);
setServiceName( new QName("http://localhost/mywork/hellowsdl","hellowsdl"));
setPortName( new QName("http://localhost/mywork/hellowsdl","hellowsdlPort"));
* implementation of hello
public java.lang.String hello(java.lang.String name)
throws java.rmi.RemoteException {
StreamingSenderState _state = null;
try {
_state = _start(_handlerChain);
if (_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS) != null) {
_state.getMessageContext().getMessage().setProperty("DimeEncode",_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS));
InternalSOAPMessage _request = _state.getRequest();
_request.setOperationCode(hello_OPCODE);
_state.getMessageContext().setProperty("oracle.j2ee.ws.mgmt.interceptor.operation-qname",new QName("","hello"));
demo.mypackage.runtime.HellowsdlBinding_hello_ReqS _myHellowsdlBinding_hello_ReqS = new demo.mypackage.runtime.HellowsdlBinding_hello_ReqS();
_myHellowsdlBinding_hello_ReqS.setName(name);
SOAPBlockInfo _bodyBlock = new SOAPBlockInfo(ns1_hello_hello_QNAME);
_bodyBlock.setValue(_myHellowsdlBinding_hello_ReqS);
_bodyBlock.setSerializer(myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer);
_request.setBody(_bodyBlock);
_state.getMessageContext().setProperty("http.soap.action", "http://localhost/mywork/hellowsdl");
_send((String) _getProperty(ENDPOINT_ADDRESS_PROPERTY), _state);
demo.mypackage.runtime.HellowsdlBinding_hello_RespS _myHellowsdlBinding_hello_RespS = null;
Object _responseObj = _state.getResponse().getBody().getValue();
if (_responseObj instanceof SOAPDeserializationState) {
_myHellowsdlBinding_hello_RespS =
(demo.mypackage.runtime.HellowsdlBinding_hello_RespS)((SOAPDeserializationState)_responseObj).getInstance();
} else {
_myHellowsdlBinding_hello_RespS =
(demo.mypackage.runtime.HellowsdlBinding_hello_RespS)_responseObj;
return _myHellowsdlBinding_hello_RespS.get_return();
} catch (RemoteException e) {
// let this one through unchanged
throw e;
} catch (JAXRPCException e) {
throw new RemoteException(e.getMessage(), e);
} catch (Exception e) {
if (e instanceof RuntimeException) {
throw (RuntimeException)e;
} else {
throw new RemoteException(e.getMessage(), e);
* this method deserializes the request/response structure in the body
protected void _readFirstBodyElement(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
int opcode = state.getRequest().getOperationCode();
switch (opcode) {
case hello_OPCODE:
_deserialize_hello(bodyReader, deserializationContext, state);
break;
default:
throw new SenderException("sender.response.unrecognizedOperation", Integer.toString(opcode));
* This method deserializes the body of the hello operation.
private void _deserialize_hello(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
try {
Object myHellowsdlBinding_hello_RespSObj =
myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer.deserialize(ns1_hello_helloResponse_QNAME,
bodyReader, deserializationContext);
SOAPBlockInfo bodyBlock = new SOAPBlockInfo(ns1_hello_helloResponse_QNAME);
bodyBlock.setValue(myHellowsdlBinding_hello_RespSObj);
state.getResponse().setBody(bodyBlock);
} catch (DeserializationException e) {
if (e.getSoapFaultSubCodeType() == JAXRPCExceptionBase.FAULT_CODE_NONE && e.getSoapFaultCodeType() != JAXRPCExceptionBase.FAULT_CODE_DATA_ENCODING_UNKNOWN) {
e.setSoapFaultSubCodeType(JAXRPCExceptionBase.FAULT_CODE_BAD_ARGUMENTS);
throw e;
public String _getEncodingStyle() {
return SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding();
public void _setEncodingStyle(String encodingStyle) {
throw new UnsupportedOperationException("cannot set encoding style");
public ClientTransport getClientTransport() {
return super._getTransport();
* This method returns an array containing (prefix, nsURI) pairs.
protected String[] _getNamespaceDeclarations() {
return myNamespace_declarations;
* This method returns an array containing the names of the headers we understand.
public QName[] _getUnderstoodHeaders() {
return understoodHeaderNames;
* This method handles the case of an empty SOAP body.
protected void _handleEmptyBody(XMLReader reader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
public void _initialize(InternalTypeMappingRegistry registry) throws Exception {
super._initialize(registry);
myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_ReqS.class, ns1_hello_TYPE_QNAME);
myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_RespS.class, ns1_helloResponse_TYPE_QNAME);
private static final QName _portName = new QName("http://localhost/mywork/hellowsdl", "hellowsdlPort");
private static final int hello_OPCODE = 0;
private static final QName ns1_hello_hello_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
private static final QName ns1_hello_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
private CombinedSerializer myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer;
private static final QName ns1_hello_helloResponse_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
private static final QName ns1_helloResponse_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
private CombinedSerializer myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer;
private static final String[] myNamespace_declarations =
new String[] {
"ns0", "http://localhost/mywork/hellowsdl"
private static final QName[] understoodHeaderNames = new QName[] { };
}The errors that are produced are-
java.rmi.RemoteException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found; nested exception is:
HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found
Kindly help to resolve this.
Thanks.This is a problem in generating a java proxy for a PHP webservice.
I have a PHP service running on Wamp Server and also a PHP client which is able to call the service.
The WSDL for the PHP web service is also generated .
I am trying to create a java proxy using the jdev (10.1.3.0.3) from the wsdl file.
The wsdl generated by the php program is
<?xml version="1.0" encoding="ISO-8859-1" ?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:hellowsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:hellowsdl">
<types>
<xsd:schema targetNamespace="urn:hellowsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="helloRequest">
<part name="name" type="xsd:string" />
</message>
<message name="helloResponse">
<part name="return" type="xsd:string" />
</message>
<portType name="hellowsdlPortType">
<operation name="hello">
<documentation>Says hello to the caller</documentation>
<input message="tns:helloRequest" />
<output message="tns:helloResponse" />
</operation>
</portType>
<binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="hello">
<soap:operation soapAction="urn:hellowsdl#hello" style="rpc" />
<input>
<soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="hellowsdl">
<port name="hellowsdlPort" binding="tns:hellowsdlBinding">
<soap:address location="http://localhost/mywork/myphp.php" />
</port>
</service>
</definitions>After making following changes to the wsdl program, I tried to generate java proxy.
<definitions name="hellowsdl"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:si="http://soapinterop.org/xsd" xmlns:tns="http://localhost/mywork/hellowsdl.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/mywork/myphpwsdl.wsdll">
<types>
<xsd:schema targetNamespace="http://localhost/mywork/hellowsdl.wsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="helloRequest">
<part name="name" type="xsd:string" />
</message>
<message name="helloResponse">
<part name="return" type="xsd:string" />
</message>
<portType name="hellowsdlPortType">
<operation name="hello">
<documentation>Says hello to the caller</documentation>
<input message="tns:helloRequest" />
<output message="tns:helloResponse" />
</operation>
</portType>
<binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="hello">
<soap:operation soapAction="" style="rpc" />
<input>
<soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="hellowsdl">
<port name="hellowsdlPort" binding="tns:hellowsdlBinding">
<soap:address location="http://localhost/mywork/myphp.php" />
</port>
</service>
</definitions>This is how the java stub file looks like:
public class HellowsdlBinding_Stub
extends oracle.j2ee.ws.client.StubBase
implements demo.mypackage.HellowsdlPortType {
* public constructor
public HellowsdlBinding_Stub(HandlerChain handlerChain) {
super(handlerChain);
_setProperty(ENDPOINT_ADDRESS_PROPERTY, "http://localhost/mywork/hellowsdl.php");
setSoapVersion(SOAPVersion.SOAP_11);
setServiceName( new QName("http://localhost/mywork/hellowsdl","hellowsdl"));
setPortName( new QName("http://localhost/mywork/hellowsdl","hellowsdlPort"));
* implementation of hello
public java.lang.String hello(java.lang.String name)
throws java.rmi.RemoteException {
StreamingSenderState _state = null;
try {
_state = _start(_handlerChain);
if (_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS) != null) {
_state.getMessageContext().getMessage().setProperty("DimeEncode",_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS));
InternalSOAPMessage _request = _state.getRequest();
_request.setOperationCode(hello_OPCODE);
_state.getMessageContext().setProperty("oracle.j2ee.ws.mgmt.interceptor.operation-qname",new QName("","hello"));
demo.mypackage.runtime.HellowsdlBinding_hello_ReqS _myHellowsdlBinding_hello_ReqS = new demo.mypackage.runtime.HellowsdlBinding_hello_ReqS();
_myHellowsdlBinding_hello_ReqS.setName(name);
SOAPBlockInfo _bodyBlock = new SOAPBlockInfo(ns1_hello_hello_QNAME);
_bodyBlock.setValue(_myHellowsdlBinding_hello_ReqS);
_bodyBlock.setSerializer(myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer);
_request.setBody(_bodyBlock);
_state.getMessageContext().setProperty("http.soap.action", "http://localhost/mywork/hellowsdl");
_send((String) _getProperty(ENDPOINT_ADDRESS_PROPERTY), _state);
demo.mypackage.runtime.HellowsdlBinding_hello_RespS _myHellowsdlBinding_hello_RespS = null;
Object _responseObj = _state.getResponse().getBody().getValue();
if (_responseObj instanceof SOAPDeserializationState) {
_myHellowsdlBinding_hello_RespS =
(demo.mypackage.runtime.HellowsdlBinding_hello_RespS)((SOAPDeserializationState)_responseObj).getInstance();
} else {
_myHellowsdlBinding_hello_RespS =
(demo.mypackage.runtime.HellowsdlBinding_hello_RespS)_responseObj;
return _myHellowsdlBinding_hello_RespS.get_return();
} catch (RemoteException e) {
// let this one through unchanged
throw e;
} catch (JAXRPCException e) {
throw new RemoteException(e.getMessage(), e);
} catch (Exception e) {
if (e instanceof RuntimeException) {
throw (RuntimeException)e;
} else {
throw new RemoteException(e.getMessage(), e);
* this method deserializes the request/response structure in the body
protected void _readFirstBodyElement(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
int opcode = state.getRequest().getOperationCode();
switch (opcode) {
case hello_OPCODE:
_deserialize_hello(bodyReader, deserializationContext, state);
break;
default:
throw new SenderException("sender.response.unrecognizedOperation", Integer.toString(opcode));
* This method deserializes the body of the hello operation.
private void _deserialize_hello(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
try {
Object myHellowsdlBinding_hello_RespSObj =
myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer.deserialize(ns1_hello_helloResponse_QNAME,
bodyReader, deserializationContext);
SOAPBlockInfo bodyBlock = new SOAPBlockInfo(ns1_hello_helloResponse_QNAME);
bodyBlock.setValue(myHellowsdlBinding_hello_RespSObj);
state.getResponse().setBody(bodyBlock);
} catch (DeserializationException e) {
if (e.getSoapFaultSubCodeType() == JAXRPCExceptionBase.FAULT_CODE_NONE && e.getSoapFaultCodeType() != JAXRPCExceptionBase.FAULT_CODE_DATA_ENCODING_UNKNOWN) {
e.setSoapFaultSubCodeType(JAXRPCExceptionBase.FAULT_CODE_BAD_ARGUMENTS);
throw e;
public String _getEncodingStyle() {
return SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding();
public void _setEncodingStyle(String encodingStyle) {
throw new UnsupportedOperationException("cannot set encoding style");
public ClientTransport getClientTransport() {
return super._getTransport();
* This method returns an array containing (prefix, nsURI) pairs.
protected String[] _getNamespaceDeclarations() {
return myNamespace_declarations;
* This method returns an array containing the names of the headers we understand.
public QName[] _getUnderstoodHeaders() {
return understoodHeaderNames;
* This method handles the case of an empty SOAP body.
protected void _handleEmptyBody(XMLReader reader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
public void _initialize(InternalTypeMappingRegistry registry) throws Exception {
super._initialize(registry);
myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_ReqS.class, ns1_hello_TYPE_QNAME);
myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_RespS.class, ns1_helloResponse_TYPE_QNAME);
private static final QName _portName = new QName("http://localhost/mywork/hellowsdl", "hellowsdlPort");
private static final int hello_OPCODE = 0;
private static final QName ns1_hello_hello_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
private static final QName ns1_hello_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
private CombinedSerializer myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer;
private static final QName ns1_hello_helloResponse_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
private static final QName ns1_helloResponse_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
private CombinedSerializer myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer;
private static final String[] myNamespace_declarations =
new String[] {
"ns0", "http://localhost/mywork/hellowsdl"
private static final QName[] understoodHeaderNames = new QName[] { };
}The errors that are produced are-
java.rmi.RemoteException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found; nested exception is:
HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found
Kindly help to resolve this.
Thanks. -
Error in generating the Java Proxy
Hi all,
While generating a Java Proxy, I am getting an error :
Unable to generate proxies
Construct not supported
Can anybody please suggest the possible reason and solution for the same.
Thanks and best regards,
KulwantIn the Integration Repository documentation for External Definitions you find a hint where you can find a document describing restrictions on the handling of XSD.
In that document you can see, that references to global elements are not supported by the java proxy generation.
Therefore, you have to edit your document accordingly.
regards
chandra
Maybe you are looking for
-
I would like to know if there is a way to add multiple borders to a single cell or selection of cells in one click. At this time, if i want to add for example a top border and a bottom border to a single cell I have to do this in two steps: first se
-
I cant display icons/files on my desktop background!!
i recently had my macbook serviced after it went into "panic" mode. anyway, it came back perfectly restored, but for some reason i cant put files/folders/icons on my visible desktop background. It wont let me create icons, and to access the desktop f
-
How to fill up when properties of PDF are empty
Hi, When a PDF has empty properties Adobe Digital Editions ignores Title and author even if nothing is protected. Is thère a way to introduice these informations to enhance readability? Thanks for answer Simon
-
Getting column names from cursor
Hi all I have procedure which produces list of applied for jobs web page(using htp. package) I got result in cursor, but have to provide dinamic sort, based on colimn pressed procedure my_application_list (pi_resume_num in varchar2 default null ,
-
Privacy; TOS for Instant Ink and HP connected
I just signed up to HP Connected, then started to sign up for Instant Ink. The 4-page TOS document really requires a lawyer's skill to understand what part of my life I would be signing over to HP. Why does HP need to track the details of what is p