Authorisation: controlling access to objects/data
Hi all,
I am looking for some pointers to design patterns that deal with authorisation.
The issue at hand is the following: for an enterprise application we need to implement a mechanism that manages user-access to certain data. Example: if a user asks for sales-figures, only the data that he/she is allowed to see (e.g. based on office) should be included in the result.
The question that we asks ourselves is: do we set up a separate authorisation manager (sessionbean) that includes all the business logic to restrict user-access, or do we make the specific objects (entity beans) responsible for this.
The latter solution would take the form of: entitybean Office, getSalesFigures(Year, User) method; based on the User object access is granted or not. The method will return 0 if the user has no access.
Feedback is appreciated.
Regards,
Jaap
Hi,
The Composite View pattern http://java.sun.com/blueprints/corej2eepatterns/Patterns/CompositeView.html
has some discussion about applying security based on user roles.
Also the Intercepting Filter pattern
http://java.sun.com/blueprints/corej2eepatterns/Patterns/InterceptingFilter.html
can be used to apply security checks. The Java petstore applies this pattern for self-registration of users, and this is explained in more detail at
http://java.sun.com/blueprints/patterns/InterceptingFilter.html which includes an explantion of the pattern being applied, and also a link the details of its implementation at
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/sample-app/sample-app1.3.1a3.html#wp1065478
These should give you a good starting point for designing role based security. The petstore used a seperate module for security because it was allowing self-registration of users. If your application does not allow users to create and manage their own user accounts(like yahoo mail etc) and instead all accounts are set up administratively(someone in the company sets up each user account), then the J2EE platform may provide the capabilities you require and you may not need to write a separate module.
The J2EE programming model also has a lot of support for role based security. So you may be able to leverage the J2EE environment to do much of the work for you. The J2EE security model is described in the security chapter of the BluePrints book at
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/index.html
hope that helps,
Sean
Similar Messages
-
Using PHP Data Services to create an object and accessing that objects data in an unbound way in AS
Hello,
I've been able to use the php data services and bind the results of a function to a component. However I am having a hard time figuring out the syntax to use the data services to create an object out of the results, and then use that object as an array of filenames to provide the current index of the filename to a new sound object.
My problem is obviously in not being able to figure out the specific syntax, I have declared the service and and object of the services returned type and in the creationComplete() function I have assigned object.token = service.getData();
I've tried various ways of then pulling that data out of the object, with no success.
Can someone point me in the right direction?
This code probably looks horrible because it doesn't work yet.
- Joel
import flash.media.Sound;
import flash.media.SoundChannel;
import mx.controls.Alert;
var playing:Sound = new Sound();
var channel:SoundChannel = new SoundChannel();
var sndIndex:int=0;
var skpTr:String;
public function init():void{
mp3Array.token = mp3service.getData();
currentTrack(mp3Array.lastResult.filename);
trace(mp3Array.lastResult.filename[sndIndex]);
public function currentTrack(t:String):void{
playing = new Sound();
playing.load(new URLRequest("mp3/" +t));
public function skip():void{
stop();
if (sndIndex != mp3Array.lastResult.length-1){
sndIndex++;
var skipTr:String=mp3Array.lastResult.filename[sndIndex].data;
currentTrack(skipTr);
play();
} else {
sndIndex=0;
skipTr=mp3Array.lastResult.filename[sndIndex].data;
currentTrack(skipTr);
play();
public function stop():void{
channel.stop();
public function play():void{
channel = playing.play();
<fx:Declarations>
<s:CallResponder id="mp3Array"/>
<mp3services:Mp3Service id="mp3service" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>Hello Joel;
In retrieving your data - what is your php returning to FB, an object, object array, an array? Either way, I have a brief example below that an object(s) is being returned. Pull the data from the lastResult in a ResultEvent. The object instantiated in the resultEvent will contain your data and you can do what you want from there.
Also, I always use Network Monitor to see what data (if any) is being returned from the server, you can also see how it is being sent back.
John
private function init():void
mp3Array.token = mp3service.getData();
mp3Array.addEventListener(FaultEvent.FAULT, faultHandler);
mp3Array.addEventListener(ResultEvent.RESULT, mp3Array_resultHandler);
protected function faultHandler(event:FaultEvent):void
Alert.show("There was a fault error!" + event.message, "Fault Error", Alert.OK);
protected function mp3Array_resultHandler(event:ResultEvent):void
// Not sure if your service is sending back an object or an array or ?
var info:Object = mp3Array.lastResult;
doSomeFunction(info)
protected function doSomeFunction(data:Object):void
trace(info.filename); -
Restrict access to ztable data
Hi all,
I have one ztable for password. and our user have authorisation of SE16 so that they can able to access that table data easily.
They need this authorisation for accessing other table data.So I want to restrict that perticular ztable data access only.
Thanks.Hii,
Check this thread,[Link|Restrict access to Particular ZTABLE via SE16...;
This will solve ur problem.
Regards,
Archana -
How to synchronize concurrent access to static data in ABAP Objects
Hi,
1) First of all I mwould like to know the scope of static (class-data) data of an ABAP Objects Class: If changing a static data variable is that change visible to all concurrent processes in the same Application Server?
2) If that is the case. How can concurrent access to such data (that can be shared between many processes) be controlled. In C one could use semaphores and in Java Synchronized methods and the monitor concept. But what controls are available in ABAP for controlling concurrent access to in-memory data?
Many thanks for your help!
Regards,
ChristianHello Christian
Here is an example that shows that the static attributes of a class are not shared between two reports that are linked via SUBMIT statement.
*& Report ZUS_SDN_OO_STATIC_ATTRIBUTES
REPORT zus_sdn_oo_static_attributes.
DATA:
gt_list TYPE STANDARD TABLE OF abaplist,
go_static TYPE REF TO zcl_sdn_static_attributes.
<i>* CONSTRUCTOR method of class ZCL_SDN_STATIC_ATTRIBUTES:
**METHOD constructor.
*** define local data
** DATA:
** ld_msg TYPE bapi_msg.
** ADD id_count TO md_count.
**ENDMETHOD.
* Static public attribute MD_COUNT (type i), initial value = 1</i>
PARAMETERS:
p_called(1) TYPE c DEFAULT ' ' NO-DISPLAY.
START-OF-SELECTION.
<b>* Initial state of static attribute:
* zcl_sdn_static_attributes=>md_count = 0</b>
syst-index = 0.
WRITE: / syst-index, '. object: static counter=',
zcl_sdn_static_attributes=>md_count.
DO 5 TIMES.
<b>* Every time sy-index is added to md_count</b>
CREATE OBJECT go_static
EXPORTING
id_count = syst-index.
WRITE: / syst-index, '. object: static counter=',
zcl_sdn_static_attributes=>md_count.
<b>* After the 3rd round we start the report again (via SUBMIT)
* and return the result via list memory.
* If the value of the static attribute is not reset we would
* start with initial value of md_count = 7 (1+1+2+3).</b>
IF ( p_called = ' ' AND
syst-index = 3 ).
SUBMIT zus_sdn_oo_static_attributes EXPORTING LIST TO MEMORY
WITH p_called = 'X'
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = gt_list
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'DISPLAY_LIST'
* EXPORTING
* FULLSCREEN =
* CALLER_HANDLES_EVENTS =
* STARTING_X = 10
* STARTING_Y = 10
* ENDING_X = 60
* ENDING_Y = 20
* IMPORTING
* USER_COMMAND =
TABLES
listobject = gt_list
EXCEPTIONS
empty_list = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDDO.
<b>* Result: in the 2nd run of the report (via SUBMIT) we get
* the same values for the static counter.</b>
END-OF-SELECTION.
Regards
Uwe -
ListCellFactory - how to access an object's data associated with list cell?
I am new to javafx and building a sample app to learn the basics. The app has a list view control and used listcellfactory to create listcells. Each list cell is composed of few labels and image. I populated list view with listViewItems function, where in it sends object[]; I have my own object with data that needs to be populated in the list cell. I have hard coded the object[] and that size is reflected in list view items size. However, I am not able to populate the object data in individual labels.
In the following code, I can only get the string representation of the object and I am unable to figure out how to individually access the object's data. Please help me with this.
function listCellFactory(): javafx.scene.control.ListCell {
var listCell: javafx.scene.control.ListCell;
def offerLbl: javafx.scene.control.Label = javafx.scene.control.Label {
text: bind "{listCell.item}"
def descriptionLbl: javafx.scene.control.Label = javafx.scene.control.Label {
text: bind "{listCell.item}"
def friendLbl: javafx.scene.control.Label = javafx.scene.control.Label {
text: bind "{listCell.item}"
def offerImgView: javafx.scene.image.ImageView = javafx.scene.image.ImageView {
image: imagetrial
fitWidth: 300.0
fitHeight: 250.0
def offerVerticalBox: javafx.scene.layout.VBox = javafx.scene.layout.VBox {
content: [ offerLbl, descriptionLbl, friendLbl, offerImgView, ]
spacing: 6.0
listCell = javafx.scene.control.ListCell {
node: offerVerticalBox
return listCell
}If I understand you question, it should be (listCell.data as YourClassName)
Edited by: AigarsP on Oct 21, 2010 2:10 PM -
Access control for Custom Objects
Hi,
I am working with two custom objects: Custom Object 1 and Custom Object 5. There is a team on Custom Object 1.
The user has access to both and has create access for Custom Object 5.
The user is not the owner of a record in Custom Object 1, but is on the team for the record with full access.
When in the related section for the custom object 5 you click on edit I get the following error: "You have read-only access to this record. Click Cancel button or Back link to continue. Access Denied.(SBL-DAT-00284)"
When you click on the link to the related record and then on edit it works fine, the user can edit and save the changed record.
I do not understand why this does not work in the related section.
Thanks for your reply!
ArnoldHi Errol,
to build your own application authorization scheme around the security model supplied by Apex for administration of the Apex environment would be a bad idea.
This was never intended for authorization scheme management in custom built Apex applications, it was solely intended to control access in the Apex environment overall. The API for it is not published, and making changes to it, such as adding more roles, would run the risk of breaking the overall Apex security model. It would not be supported by Oracle and Oracle would not guarantee the upwards compatibility of any changes you make in future versions of Apex.
In short, you should follow Tyson's advice and build your own structure. As he indicated, there are plenty of examples around and provided your requirements are not too complicated, it will be relatively simple.
Regards
Andre -
How to access the Custom Data type variable given in Expression edit control To and From LabVIEW
Hello, I would like to know how to access the custom data type variable given in the Espression Edit Control from LabVIEW and vice-versa
Say, the FileGlobals.Reference_Handle (Custom Data Type Variable) contains the
VISA I/O session (Which in turn contains VISA_DeviceName: String, Session: Number),
Channel1: Number and
Channel2: Number
I am expecting the user to give FileGlobals.Reference_Handle as the input at the ExpressionEdit Control in the edit screen of the VI Call.
I would like to know how to get the values of this custom data type to LabVIEW?
Say, if I have the Cluster in LabVIEW like VISA I/O session (Deive Name and Session Number), Channel1 and Channel2
how do i need to set this cluster to the Custom Data type variable in TestStand?
Thanks and Regards
PrakashHi,
TestStand to LabVIEW: i didnt understand what you r trying to achieve. But if you are using references, Use Property nodes and Invoke nodes to achieve what you want in LabVIEW.
LabVIEW to TestStand: check the image below: You need to click the button next to 'container'. I have used a cluster output in the VI.
Hope this helps
.......^___________________^
....../ '---_BOT ____________ ]
...../_==O;;;;;;;;_______.:/
Attachments:
1.JPG 187 KB -
Website needs Microsoft Data Access - Active X Data Objects
I have a number of websites for work that are seem to be built around Internet Explorer. When I try to open them on my Mac at home with Safari, I get message that I pasted below.
I'm thinking this might be related to the fact that when I open them on a PC for the first time it shows a similar message, but Internet Explorer prompts me to download and run "Microsoft Data Access - Active X Data Objects", and then it runs fine.
Based on this I'm assuming it's a lack of these "objects" that are causing this problem. Is there any equivalent to these components for the Mac? Anything I can try to access these websites from my Mac? I've tried using Firefox as well, which has the exact same issue.
Right now I've got to fire up my 2006 PC laptop to use Internet Explorer every time I need access to these sites. I realize I could install windows on my Mac with bootcamp and restart in windows every time I need access, but that seems like a waste just to visit 2 websites. Any advice?
+"Scanning Required components...+
+The user's Internet browser requires proper configuration to access our site. Read the following instructions on how to set up the browser properly.+
+Active Scripting Configuration:+
+Select Tools from the Internet Explorer menu bar.+
+Select Internet Options ...+
+Select the Security tab.+
+In the Web Content Zone list, select «Internet».+
+Click Custom level....+
+In the Settings list, scroll down to the Scripting section.+
+Check the Enable option under the «Active scripting» item and click OK.+
+Click Yes to confirm the change in the security settings.+
+In the Internet Options dialog box, select the «Local intranet» and repeat steps 5 to 8.+
+Click OK to close the dialog box."+Hi,
Try this...
From your Safari menu bar click Safari / Preferences then select the Advanced tab. Enable the develop menu.
In the menu bar click Develop / User Agent.
Try IE 8, 7, or 6.
No guarantees but can't hurt to try. ActiveX requires Windows.........
Carolyn -
Error: Accessing grouped objects in tab control
I have encountered an error where I cannot use/select objects within a tab control because they are grouped together.
If I copy/paste the tab control it shows them grouped and I can select them but as it stands in my program I cannot select the objects.
I would just copy/paste and work with that but I have property nodes and additional code for each of the 20 objects and would rather not have to go back and relink each property node and wire the new controls within the BD.
I am looking for a way of accessing the objects without having to copy+paste/recode anything.
Please note that there is a recent post about this tab control grouping error but is geared more towards adding an error notifier to LabView rather than how to fix the error.
Solved!
Go to Solution."Are these objects grouped because they are in a cluster or possibly because they were grouped using the reorder menu?"
The objects were grouped using the reorder menu on the front panel and then placed on a tab control.
The issue was that when I tried clicking on any of the grouped objects within the tab control on the front panel, nothing would happen.
If I double clicked, I would select the tab control on the BD.
I got rid of the bug by selecting everything on my BD and copying it into a new, blank VI.
Once I did that, I was able to access the objects that were grouped on the tab control.
Sorry for the late reply-- once I got it working I was only focused on finishing my task. -
Can Business Objects Web Intelligency reports access NearLine Storage data Via BW Bex Query
Hi Gurus,
I am aware BEX queries can access NearLine Storage data for reporting but can Business Objects Web Intelligency reports access NearLine Storage data Via BICS connection ( Bex Query as a Source).
Thanks,
Shak.I would recommend to let your SAP Basis guys do a security trace on the SAP BW side and see if some authorization check for the user fails when trying to fetch data over the universe.
Regards,
Stratos -
To limit the access of PM data based on the Company Code, Plant & Location
Hi Experts,
I have a requirement . Customer wants to Restrict the access of PM data for a user based on the company code,
Plant & Location.
Say user : XYZ
Plant :1000
CCODE:1000
Location:0001
So you can see data of only this Organisation structure .No other data will be visible to him.
I know we can do it using authorisation object
Can you Suggest me how can we do this.
Regards,
AmarHi,
You can achieve this by maitaing these values in user authrisations. If you want more info about the objects check SU22 t code under PM.
For Plant I_IWERK
For Location I_ILOA
Regards,
N.Nagaraju -
How can I set up a new user account that has access to iPhoto data on Admin account?
I have set up a new user account for my son. I have set up his parental controls but I would like him to have access to the data in iPhoto and iTunes from the Admin account. I do allow him access to the applications with the parental controls, but they are empty. Thanks for your help!
Is your regular user an Admin?
Yes. So is the new account I tried to set up.
Are these apps installed in the main /Applications folder?
Yes.
Are they App Store apps or installs from disc/download?
Both, but App Store purchases are a clear minority, and aren't much of a problem, due to the ease of re-downloading and activating. The downloaded programs are the ones that present the problems. I have not been good about archiving serial numbers and the like, mostly because I've never had a problem like this before.
What specific apps are you having trouble with? For instance, I know that MS Office and Adobe CS5 for perfectly well for all users on my MBP.
This is a very long list. Let me give you some of it, and if you really need all of them, I'll add to the list later.
1Password 4
ABBYY FineReader for ScanSnap
Adobe Acrobat 8 Professional
Adobe Photoshop Elements 8 plus On ONE add-on filters
Burn
calibre
DiskTracker
Dragon Dictate
Flv Crunch 1.5.0
GraphicConverter
Harmony Assistant
iBank
iSkysoft iMedia Converter Deluxe
MacX Video Converter Pro
QMidi
Screenium
Unison
WireTap Studio
Also, what troubleshooting steps have you taken so far?
Not much, since I have no idea where the problem is. I looked for some central repository of software serial numbers or activations, but didn't find one. -
Problem while accessing a complex data type
hi,
I am getting a problem while accessing a complex data type
I have a wsdl as:
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions name="OutlookReminderService" targetNamespace="http://ws.aftek.com/outlook-reminder" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns2="http://ws.aftek.com/outlook-reminder/schemas" xmlns:ns3="http://java.sun.com/jax-rpc-ri/internal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.aftek.com/outlook-reminder" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <types>
- <schema targetNamespace="http://ws.aftek.com/outlook-reminder/schemas" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://ws.aftek.com/outlook-reminder/schemas" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<import namespace="http://java.sun.com/jax-rpc-ri/internal" />
- <complexType name="TaskVO">
- <sequence>
<element name="dueDate" type="long" />
<element name="percentageComplete" type="int" />
<element name="priorty" type="int" />
<element name="reminderDate" type="long" />
<element name="reminderSet" type="boolean" />
<element name="startDate" type="long" />
<element name="status" type="int" />
<element name="subject" type="string" />
<element name="taskId" type="string" />
</sequence>
</complexType>
- <complexType name="NoSuchUserException">
- <sequence>
<element name="message" type="string" />
</sequence>
</complexType>
- <complexType name="ArrayOfContactVO">
- <complexContent>
- <restriction base="soap11-enc:Array">
<attribute ref="soap11-enc:arrayType" wsdl:arrayType="tns:ContactVO[]" />
</restriction>
</complexContent>
</complexType>
- <complexType name="ContactVO">
- <sequence>
<element name="birthDate" type="long" />
<element name="companyAddress" type="string" />
<element name="companyName" type="string" />
<element name="emailID1" type="string" />
<element name="emailID2" type="string" />
<element name="emailID3" type="string" />
<element name="faxNumber" type="string" />
<element name="firstName" type="string" />
<element name="homeAddress" type="string" />
<element name="lastName" type="string" />
<element name="middleName" type="string" />
<element name="mobileNumber" type="string" />
<element name="phoneNumber" type="string" />
<element name="workContactNumber" type="string" />
</sequence>
</complexType>
</schema>
- <schema targetNamespace="http://java.sun.com/jax-rpc-ri/internal" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://java.sun.com/jax-rpc-ri/internal" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<import namespace="http://ws.aftek.com/outlook-reminder/schemas" />
- <complexType name="arrayList">
- <complexContent>
- <extension base="tns:list">
<sequence />
</extension>
</complexContent>
</complexType>
- <complexType name="list">
- <complexContent>
- <extension base="tns:collection">
<sequence />
</extension>
</complexContent>
</complexType>
- <complexType name="collection">
- <complexContent>
- <restriction base="soap11-enc:Array">
<attribute ref="soap11-enc:arrayType" wsdl:arrayType="anyType[]" />
</restriction>
</complexContent>
</complexType>
</schema>
</types>
<message name="OutlookServer_addTaskResponse" />
- <message name="OutlookServer_getListResponse">
<part name="result" type="ns3:arrayList" />
</message>
- <message name="OutlookServer_getContactListResponse">
<part name="result" type="ns2:ArrayOfContactVO" />
</message>
- <message name="NoSuchUserException">
<part name="NoSuchUserException" type="ns2:NoSuchUserException" />
</message>
- <message name="OutlookServer_getContactList">
<part name="String_1" type="xsd:string" />
</message>
- <message name="OutlookServer_getList">
<part name="String_1" type="xsd:string" />
</message>
- <message name="OutlookServer_addTask">
<part name="String_1" type="xsd:string" />
<part name="TaskVO_2" type="ns2:TaskVO" />
</message>
- <message name="OutlookServer_reminderOccurredResponse">
<part name="result" type="xsd:boolean" />
</message>
- <message name="OutlookServer_reminderOccurred">
<part name="String_1" type="xsd:string" />
<part name="TaskVO_2" type="ns2:TaskVO" />
</message>
- <portType name="OutlookServer">
- <operation name="addTask" parameterOrder="String_1 TaskVO_2">
<input message="tns:OutlookServer_addTask" />
<output message="tns:OutlookServer_addTaskResponse" />
<fault message="tns:NoSuchUserException" name="NoSuchUserException" />
</operation>
- <operation name="getContactList" parameterOrder="String_1">
<input message="tns:OutlookServer_getContactList" />
<output message="tns:OutlookServer_getContactListResponse" />
<fault message="tns:NoSuchUserException" name="NoSuchUserException" />
</operation>
- <operation name="getList" parameterOrder="String_1">
<input message="tns:OutlookServer_getList" />
<output message="tns:OutlookServer_getListResponse" />
<fault message="tns:NoSuchUserException" name="NoSuchUserException" />
</operation>
- <operation name="reminderOccurred" parameterOrder="String_1 TaskVO_2">
<input message="tns:OutlookServer_reminderOccurred" />
<output message="tns:OutlookServer_reminderOccurredResponse" />
<fault message="tns:NoSuchUserException" name="NoSuchUserException" />
</operation>
</portType>
- <binding name="OutlookServerBinding" type="tns:OutlookServer">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="addTask">
<soap:operation soapAction="" />
- <input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</input>
- <output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</output>
- <fault name="NoSuchUserException">
<soap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="NoSuchUserException" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</fault>
</operation>
- <operation name="getContactList">
<soap:operation soapAction="" />
- <input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</input>
- <output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</output>
- <fault name="NoSuchUserException">
<soap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="NoSuchUserException" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</fault>
</operation>
- <operation name="getList">
<soap:operation soapAction="" />
- <input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</input>
- <output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</output>
- <fault name="NoSuchUserException">
<soap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="NoSuchUserException" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</fault>
</operation>
- <operation name="reminderOccurred">
<soap:operation soapAction="" />
- <input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</input>
- <output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</output>
- <fault name="NoSuchUserException">
<soap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="NoSuchUserException" namespace="http://ws.aftek.com/outlook-reminder" use="encoded" />
</fault>
</operation>
</binding>
- <service name="OutlookReminderService">
- <port binding="tns:OutlookServerBinding" name="OutlookServerPort">
<soap:address location="http://truptid:8080/outlook-reminder-service/outlook" />
</port>
</service>
</definitions>
My client is :
private static String BODY_NAMESPACE_VALUE = "http://ws.abc.com/outlook-reminder";
private static String ENCODING_STYLE_PROPERTY = "javax.xml.rpc.encodingstyle.namespace.uri";
private static String NS_XSD = "http://www.w3.org/2001/XMLSchema";
private static String URI_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
try{
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new QName("OutlookReminderService"));
QName port =new QName("OutlookReminderService","OutlookServerPort");
Call call =service.createCall(port);
call.setTargetEndpointAddress("http://localhost:8080/outlook-reminder-service/outlook?wsdl");
call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
call.setProperty(Call.SOAPACTION_URI_PROPERTY, "");
call.setProperty(ENCODING_STYLE_PROPERTY, URI_ENCODING);
call.getReturnType();
call.setOperationName(new QName(BODY_NAMESPACE_VALUE, "getList"));
QName QNAME_TYPE_STRING = new QName(NS_XSD, "string");
call.addParameter("String_1", QNAME_TYPE_STRING, ParameterMode.IN);
//http://ws.aftek.com/outlook-reminder/schemas
QName QNAME_TYPE_VO = new QName("http://schemas.xmlsoap.org/soap/encoding/", "Array");
System.out.println("Before Add Parameter");
// call.addParameter("result", QNAME_TYPE_VO, ParameterMode.OUT);
call.setReturnType(QNAME_TYPE_VO,ArrayList.class);
System.out.println("After Add Parameter");
Object[] params ={oUserVO.getUserName()};
oArrayList =(ArrayList)call.invoke(params);
System.out.println("After Invoked");
//System.out.println("invoked"+ arrayList);
catch(SOAPFaultException faultException)
moLogger.debug("SOAPFaultException : ", faultException);
catch(RemoteException oremoteException)
moLogger.debug("RemoteException", oremoteException);
catch(ServiceException oServiceException)
moLogger.debug("ServiceException", oServiceException); }
Error got is :
trailing block elements must have an id attribute
at com.sun.xml.rpc.encoding.SOAPDeserializationContext.deserializeMultiRefObjects(SOAPDeserializationContext.java:81)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:239)
at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:103)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:492)
at com.ail.dhg.poc.business.dao.ContactDAO.getList(ContactDAO.java:255)
at com.ail.dhg.poc.business.facade.ContactFacade.getList(ContactFacade.java:189)
at com.ail.dhg.poc.business.AcceptInput.main(AcceptInput.java:72)
java.lang.NullPointerException
at com.ail.dhg.poc.business.dao.ContactDAO.getList(ContactDAO.java:277)
at com.ail.dhg.poc.business.facade.ContactFacade.getList(ContactFacade.java:189)
at com.ail.dhg.poc.business.AcceptInput.main(AcceptInput.java:72)
Message was edited by:
trupti_dUse lower case letters for your variable names (name, pwd). The code works then.
package com.bluenile.bean;
import java.io.*;
public class Bean1 implements Serializable
private String name="Uname";
private String pwd="Pword";
public String getName()
return name;
public String getPwd()
return pwd;
void setName(String name)
this.name = name;
void setPwd(String pwd)
this.pwd = pwd;
<HTML>
<BODY BGCOLOR="#FFFFFF">
<%@ page language="java" contentType="text/html" %>
<jsp:useBean id="b1" class="com.bluenile.bean.Bean1" />
<ul>
<li>Name : <jsp:getProperty name="b1" property="name" />
<li>Pwd : <jsp:getProperty name="b1" property="pwd" />
</ul>
</BODY>
</HTML> -
Control Access in Message Monitoring
Can I control access to payload within PI-Message-Monitoring? The topic has been discussed already: How to Control Access To Payload
By using the "S_XMB_MONI-authorization-object" I can protect access to payload for certain messages, regardless of viewing it with Transcation "SXMB_MONI" or with "RuntimeWorkbench";
For me it is not clear, whether the "S_XMB_MONI-authorization-object" does only affect messages within the Integration-Server, or does it also work for messages in adapter-engine-message-monitoring? I mean, when using "Runtime-Workbench --> Message-Monitoring --> AdapterEngine..."?
Regards, JosefHi,
It works only for SXMB_MONI (ABAP stack), user on adapter engine can still see payload.
One hint I can give you to explore further, authorization on RWB are controlled by Visual Admin, you can explore something there to block user to view payload on RWB.
I am exploring it and will update you.
Regards,
Gourav
reward points if it helps you -
Help on accessing Oracle object !
Hi,
Looking for a help in accessing oracle object using JDBC. I've the following object defined in Oracle.
TYPE ty_ctg_prod AS OBJECT(
PROD VARCHAR2(40 ),
NODE_ID NUMBER ,
CTG_ID NUMBER );
TYPE ctg_PROD_ary AS VARRAY (50) OF ty_ctg_PROD;
The procedure out parameter is returning :
x_ctg_prod_ary OUT ctg_prod_ary
Do I need to use a OracleTypes.STRUCT API Or oracle.sql.ARRAY to access data in this scenario.
Any pointers will be highly appreciated.
Thanks,
Shamik// Get the object1 value from the second column col_object1
oracle.sql.STRUCT object1 = (oracle.sql.STRUCT)collabstatement.getObject(2);
// Get the object1 values from each row
Object[] object1Values = object1.getAttributes();
// Get the first value of object1, which is a string
String str = (String)object1Values[0];
// Get the second value of object1, which is of the type object2
oracle.sql.STRUCT object2 = (oracle.sql.STRUCT)object1Values[1];
// Get the values of object2
Object object2Values[] = object2.getAttributes();
str = (String)object2Values[0];
BigDecimal num = (BigDecimal)object2Values[1];you can also use :oracle.sql.Datum[] attrs = oracleSTRUCT.getOracleAttributes();more info :
http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/objects/ObjectTypes.html
Maybe you are looking for
-
please help me with steps to create a Z screen for ME2L for consingment stock?
-
Error in compile smol program identifier expected
I CAN'T Compile this code - the ansuer <identifier> expected the code // Exercicio - Ticker.java import java.applet.*; import java.awt.*; public class Ticker extends Applet implements Runnable { private volatile Thread tickerThread = null; String tic
-
Updating Adobe Flash Plug-In for Mac 10.5.8
Hello, I have been trying to update the Adobe Flash Plug-In for a Mac 10.5.8 and have not had much success. I've downloaded the plug-in 4 times and it will not run properly. Please advise! Thank you.
-
I generate a 10mb schema based xml file in a few seconds, but if I want to validate this, it takes a lot of memory and time ( 7 hours), how can I tune this. The schema is already tuned, it takes a few seconds to ftp the xml file in and out edwin
-
Images suddenly appear distorted (streched).
Many of my photos in iphoto have suddenly become distorted (streched). I have now have the latest version og iphoto and have upgrated the library but the problem persists. Anyone have explanations or tips? only some are distorted per roll/event and s